Springboot初总结
一、传统SSM项目存在的缺陷
1.配置繁多:大多配置都是固定,基本不会变;配置文件过多,维护麻烦
2.依赖过多:可能依赖冲突
3.tomcat7插件有点过时:没有解决GET请求的中文乱码问题
4.部署项目过于麻烦:需要先打成war包,再部署到tomcat的webapp目录下
5.做不到敏捷式开发
二、认识SpringBoot
1.推荐零配置文件【自动化配置】,建议使用注解开发
2.解决依赖繁多的问题,使用起步依赖【starter】
3.独立运行,内置tomcat
4.安全,健康,性能测试
1、配置文件名称:
-
application.properties【默认的】
-
application.yml【建议使用,后期使用这个】
-
-
-
在resources目录下:config目录 > 根目录
- 在项目根目录下的config目录 > resources目录下的config目录
三、自动化配置原理(简要介绍,供自己看)
1、自动化配置:
-
我们没有配置任何的内容,那么可以直接开发WEB接口,就代表SpringBoot提供了默认的配置
2、原理:@SpringBootApplication是一个组合注解:
@SpringBootConfiguration
-@Configuration:代表引导类也是一个配置类
@ComponentScan:组件扫描,Spring会扫描引导类的包及子包下组件
@EnableAutoConfiguration
-Import注解,导入了一个AutoConfigurationImportSelector配置类,会自动执行selectImports方法,最终会通过SpringFactoriesLoader.loadFactoyrNames方法去读取jar中名为META-INF/spring.factories配置文件
2.2 SpringApplication.run方法
-
-
判断是否具备WEB环境
-
读取jar中为META-INF/spring.factories中的spring初始化器及spring监听器封装成两个集合进行内存
-
判断是否具备main方法
-
-
run方法
-
会去内存读取初始化器列表,监听器列表和@EnableAutoConfiguration加载进内存的字符串数组,通过反射创建对象注入到Spring容器中,前提了你导入了相关的起步依赖且满足了各种Conditional的条件
-
run方法会去读取@EnableAutoConfigurationl加载进内存的字符串数组,通过上下文环境判断是否导入起步依赖,是否应用了各种Conditional注解,创建满足条件的bean并注入到Spring容器中