spring boot 我的理解就是对springmvc的一个升级,按照约定大约配置的理念,对ssm项目进行简化。主要优点包括: a:继承了一个starter-parent包,里边包含了spring常用的依赖; b:采用了约定大约配置的思想,基本实现了0配置;代码中不在建议写xml文件,只需要写属性文件就可以; c:默认的属性文件是application.propertis,引入了yml文件,层级显示,自动提示 d:内置了tocmat,通过main方法直接启动,省去了项目部署的麻烦; 它的核心注解是:SpringbootApplication; 问题:springboot的启动原理和自动装配?(主动说) 1、Springboot内置了tomcat组件,我们可以通过在启动类加上SpringbootApplication注解,然后用main方法进行启动; 2、SpringBootApplication由多个注解组成,其中核心的有三个; 3、注解1:SpringBootConfiguration 这个注解就相当于IOC。主要就是为了加载Springboot本身的属性文件和项目里边引入的各种starter包; 4、注解2:EnableAutoConfiguration这个注解主要是开启Springboot的自动配置,加载我们项目中自己自定义的那些加了@configuration注解的类;(加@Configration这个注解的类,就相当于springmvc的xml配置文件,用于帮我们把第三方组件实现控制反转,交给spring的IOC容器进行管理;) 5、注解3:CompanScan 这个注解主要是扫描我们自己编写的controller、service、dao这写类,加载到spring的ioc容器里边;默认扫描当前启动类的本包或者子包;
- SpringbootApplication扫描到引入的各种starter包以后,会首先去读取包下的一个spring.facotories的文件。通过这个文件加载starter里边的各种第三方配置,到tomcat插件的servlet容器中。这样项目就运行起来了;
- 所以这里可以发现,Springmvc是先加载servlet容器,再去加载spring的配置。而Springboot刚好相反,是先加载Spring的配置,然后再去初始化servlet容器。
问题: Springboot读取yml(properties)属性文件的方式有哪些? a:使用@Value注解读取---必须熟悉 b:使用Environment读取 ---知道 c:@ConfigurationProperties注解读取---必须熟悉 在实际项目中,当项目需要注入的变量值很多时,上述所述的两种方法工作量会变得比较大,这时候我们通常使用基于类型安全的配置方式,将properties属性和一个Bean关联在一起,即使用注解@ConfigurationProperties读取配置文件数据。 问题: Springboot如何实现多环境配置? 在Springboot的resouce目录下,创建多个配置文件,比如: 测试环境application-test.yml 开发环境application-dev.yml 生产环境application-product.yml 项目启动时,默认去读取application.yml。通过application.yml中的spring.profiles.active=dev属性,找到对应的配置文件;这个profiles也可以通过maven的pom文件,或者启动时加入参数进行指定; ![](https://img-blog.csdnimg.cn/20210528230236703.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81ODQxMDUyNg==,size_16,color_FFFFFF,t_70) ![](https://img-blog.csdnimg.cn/20210528230236659.png) |