1 SpringBoot启动Tomcat
1.1 Spring在启动时创建一个Spring容器1.2 利用@ConditionalOnClass技术判断classpath中是否存丰Tomcat依赖,如果存在则生成一个启动Tomcat的Bean
1.3 Spring容器创建完后,就会获取启动Tomcat的Bean,并创建Tomcat对象,绑定端口,启动Tomcat
2 SpringBoot核心注解
2.1 Spring3已经包含以下注解@Configuration,@Bean,@Import2.2 SpringBoot注解
@SpringBootApplication - SpringBoot启动注解
@SpringBootConfiguration - 标注这个类是一个配置类
@EnableAutoConfiguration - 向Spring容器中导入一个Selector,用来加载ClassPath下的SpringFatories中所定义的自动配置类,将这些自动加载为配置Bean
@ComponentScan - 标识扫描路径
@Conditional - 作用是按照一定的条件进行判断,满足条件给容器注册Bean
@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了.@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析
https://blog.51cto.com/u_15491409/5103442
3 为什么SpringBoot的jar可以直接运行
3.1 部署springboot插件,才可以正常运行java -jar xxx.jar - spring-boot-maven-plugin3.2 加了这个插件后,生成一个Fat jar(jar包含jar),包含了所有依赖的jar
3.3 java -jar会在jar中找到mainfest文件->启动Main函数JarLauncher->创建一个ClassLoader来加载boot-lib下面的jar,并以一个新线程启动Main函数(Start-Class)
4 配置一个简单SpringMVC
4.1 创建一个spring.xml,配置controller类和service类(Bean)4.2 将spring.xml配置在web.xml里的DispatherServlet
4.3 将准备好web.xml放在WEB-INF文件里面让Tomcat启动加载->创建DispatherServlet->创建 Spring容器(AppliactionContext)—>创建Bean(生命周期)
4.4 解析web.xml ->listener->servlet
5 SpringBoot自动配置原理
5.1 自动配置类由各个starter提供,使用@Configuration+@Bean定义配置类,放在META-INF/spring.factories下,使用Spring spi扫描META-INF/spring.factories下的配置类,使用@Import导入自动配置类
标签:面试题,SpringBoot,Tomcat,Spring,配置,jar,Bean From: https://www.cnblogs.com/ningshare/p/16930473.html