Spring的代码是轻量级的,但它的配置却是重量级的。
SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式
Spring Boot的核心功能是起步依赖和自动配置
起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。
自动配置是一个运行时的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是Spring自动完成的。
所有的Spring Boot工程都需要继承spring-boot-starter-parent工程。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
Spring Boot的POM文件导包是以功能为单位来导包的(下面是使用web功能的导包)。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
使用@SpringBootApplication注解来标注SpringBoot的启动类。
SpringApplication.run(MySpringBootApplication.class) 代表运行SpringBoot的启动类,参数为SpringBoot启动类的字节码对象
Spring Boot热部署
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
Spring Boot会自动将application启动类所在的包及其子包中的所有Bean进行扫描。
@SpringBootApplication=@SpringBootConfiguration+@EnableAutoConfiguration+@ComponentScan
SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)进行配置。
YAML (YAML Aint Markup Language)是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入。其以数据为核心的,比传统的xml方式更加简洁。扩展名可以使用.yml或者.yaml。
配置文件的key可以查阅SpringBoot的官方文档
文档URL:https://docs.spring.io/spring-boot/docs/2.0.1.RELEASE/reference/htmlsingle/#common-application-properties
使用注解@Value可以将配置文件中的值映射到一个Spring管理的Bean的字段上。字段无须提供set方法。
使用注解@ConfifigurationProperties(prefix=“配置文件中的key的前缀”)可以将配置文件中的配置自动与实体进行映射。字段必须提供set方法。