1.基本配置
1.1入口类和@SrpingBootApplication
SpringBoot通常有一个名为*Application的入口类,入口类里有一个main方法,这个main方法就是一个标准的java应用的入口方法
。在main方法中使用SpringApplication.run,启动springboot项目。
其中@EnablieAutoConfiguration让springboot根据类路径中的jar包依赖为当前项目进行自动配置。例如,添加了spring-boot-starter
-web依赖,会自动添加tomcat和springMVC的依赖,那么springboot会对Tomcat和springMVC进行自动配置。又如,添加了
srping-boot-starter-data-jpa依赖,springboot会自动进行JPA的相关配置。
Springboot会自动扫描@SpringBootApplication所在类的同级包以及下级包里的Bean,建议入口类位置在groupId+arctifactID组合的包名i下。
1.2关闭特定的自动配置
关闭特定的自动配置应该使用@srpingBootApplication注解的exclude参数。
1.3关闭banner
将main里的内容修改为
1.4SpringBoot的配置文件
SpringBoot使用一个全局的配置文件application.properties。放置在src/main/resource目录或者类路径的/config下。
SpringBoot的全局配置文件的作用是对一些默认配置的配置进行一些修改。
将Tomcat的默认端口号8080修改为9090,并将默认访问路径“/”修改为“/helloboot”
1.5starter pom
springBoot为我们提供了简化企业级开发绝大数场景的start pom,只要使用了应用场景所需要的start pom,相关的技术配置就会消除
就可以通过Springboot得到自动配置的Bean。
官方 starter pom
还有一些第三方的start pom。
1.6使用xml配置
springboot提倡零配置,即无xml配置,但在实际项目中,可能有一些特殊要求必须使用xml配置。可以通过Spring提供的@ImportResource
注解来加载xml配置。
2.外部配置
2.1命令行参数配置
springboot可以是基于jar包运行的,打成jar包的程序可以直接通过如下命令运行
java -jar xx.jar
可以通过以下命令修改Tomcat端口号:
java -jar xx.jar --server.port=9090
2.2常用的属性配置
(1)application.properties增加属性
2.3类型安全的配置(基于properties)
上列中使用@value注入每个配置在实际项目中会显得格外麻烦,因为我们的配置通常会是很多个
springboot还提供了基于类型安全的配置通过@configurationProperties将properties属性和一个Bean及其属性关联。
3.日志配置
springboot支持java Util Logging,log4j,log4j2和logback作为日志框架。无论使用哪种日志框架,springBoot已经为当前使用日志框架
控制台输出和文件输出做好了配置。
默认情况下,springboot使用logback作为日志框架。
配置的日志级别为:
4.Profile配置
目录结构
5. Springboot的运行原理
springboot关于自动配置的源码在spring-boot-autoconfigure中
可以在这里查看源码
可以通过以下方式来产看当前项目汇总已启用或未启用的自动配置的报告。
在application.properies中设置属性:
debug=true
此时启动时可以在控制台中输出:
已启用的自动配置为:
5.1运行原理
关于springboot的运行原理,我们还是回归到@srpingBootApplication注解上来,这个注解是一个组合注解
它的核心功能是@EnableAutoConfiguration注解提供的。
下面我们来看下@EnableAutoConfiguration注解的源码:
这里的关键功能是@import注解导入的配置功能,EnableAutoConfiggurationImportSelect使用
SpringFactoriesLoader。loadFactoryNames方法来扫描具有META-INF/spring.factories文件的jar
包,而我们的spring-boot-autoconfigure-1.3.0.xjar里就一个spring.factories文件。在此文件里声明了有哪些
自动配置。
5.2核心注解
打开上面人一个一个AutoConfiguration文件,一般都有下面的条件注解