手写简化版SpringBoot
Posted moris5013
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手写简化版SpringBoot相关的知识,希望对你有一定的参考价值。
Springboot项目全部依赖注解的,web工程是如何启动的
1 首先引入了Tomcat依赖,然后用java代码启动Tomcat容器,默认Tomcat版本是8.5版本
2 Tomcat是实现了servlet3.0规范,在servlet加载类的过程中会寻找实现了ServletContainerInitializer接口的类,spring为我们实现了这个接口的类是SpringServletContainerInitializer,最后又会去调用实现了WebApplicationInitializer接口的类,最后真正是实现WebApplicationInitializer接口的是这个AbstractAnnotationConfigDispatcherServletInitializer,然后在该类中去初始化spring容器和springmvc容器和servlet拦截的url
public class AppTomcat public static void main(String[] args) throws ServletException, LifecycleException start(); public static void start() throws ServletException, LifecycleException //创建Tomcat容器和设置端口 Tomcat tomcatServer = new Tomcat(); tomcatServer.setPort(9090); StandardContext ctx = (StandardContext) tomcatServer.addWebapp("/", new File("src/main").getAbsolutePath()); ctx.setReloadable(false); WebResourceRoot resources = new StandardRoot(ctx); File additionWebInfClasses = new File("target/classes"); //告诉Tomcat项目的class目录,根目录 resources.addPreResources( new DirResourceSet(resources, "/WEB-INF/classes", additionWebInfClasses.getAbsolutePath(), "/")); //启动容器 tomcatServer.start(); tomcatServer.getServer().await();
项目结构:
github下载地址:https://github.com/jake1263/MySpringBoot
以上是关于手写简化版SpringBoot的主要内容,如果未能解决你的问题,请参考以下文章