其实这篇笔记在云笔记里记载好久了,忽然看到,分享出来帮自己复习也希望能帮到需要的人(ΦωΦ)
springboot优点:
1.快速构建项目
2.对主流开发框架的无配置集成
3.项目可独立运行,无需外部依赖Servlet容器
4.提供运行时的应用监控
5.极大的提高了开发、部署效率
6.与云计算的天然集成
启动类@SpringbootApplication 是一个组合注解,主要的注解组成有@EnableAutoConfiguration、@Configuration、@ComponentScan:
@EnableAutoConfiguration:让springboot根据类路径下的jar包依赖进行自动配置
例如,添加了spring-boot-starter-web依赖,会自动添加tomcat和spring mvc 的依赖,那么springboot就会对tomcat和springmvc进行自动配置
Sptingboot会自动扫描@SpringbootApplication所在类的同级包以及下级包里的bean(若为JPA项目还可以扫描到@Entity的实体类)。建议将入口放在groupId+arctifactId的组合包名下
@Configuration:一般用来初始化配置类使用,通过@Configuration注解标注的类会在项目初始化的时候加载,也可理解为用spring的时候xml里面的标签
@ComponentScan告诉Spring 哪个packages 的用注解标识的类 会被spring自动扫描并且装入bean容器。
一、配置篇
1.配置文件:application.properties或者application.yml 在目录src/main/resources/下
2.配置读取:
如果spring启动时没有读取配置文件,需在pom.xml文件里加:
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
① Environment 读取
注意:Environment 不仅仅是从配置文件中获取,还要其他的一些配置信息来源(比如本机配置)
② @Value 读取
③ 对象映射方式
自定义配置文件需用@PropertySource(“classpath:xxx.properties”)去读取,除yml文件
3.多环境选择
4.配置文件的优先级:
①外置,在相对于应用程序运行目录的 /config 子目录中
②外置,在应用程序运行的目录中
③内置,放在config包下(即 src/main/resources/config)目录下
④内置,放在classpath根目录下(即默认的 src/main/resources/目录下)
上面的优先级是从高到低来的,即外置的改与内置的;config下面的高于根目录下的
(即应用外的配置文件优先于应用内,config目录下的优先于根目录下的)
bootstrap.yml(bootstrap.properties)先加载
application.yml(application.properties)后加载
bootstrap.yml 用于应用程序上下文的引导阶段。
bootstrap.yml 由父Spring ApplicationContext加载。
父ApplicationContext 被加载到使用 application.yml 的之前
(是不是有点绕口,其实很好记)
更改环境选择的方式:
①命令行参数
注意:命令行参数传入时,请注意写法形同 --key=value