目录
1. 什么是Spring boot ?
我们知道, spring虽然是轻量级的框架 , 但配置却是重量级的 , 我们需要编写大量的xml文件,并且还需要导入大量的 jar 坐标 , 一旦选错版本 , 就会导致很多因版本不兼容的问题 . 所以在这种不方便的情况之下 , spring boot 便诞生了 , 它又对spring进行了封装 , 使得我们不用考虑这些繁琐的配置 , 全身心投入到业务中
Spring Boot以约定大于配置的核心思想,从而使开发人员不再需要定义样板化的配置。它集成了大量常用的第三方库配置(例如Redis,Jpa RabbitMQ,Quartz等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用,通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域成为领导者。
特点 :
创建独立的spring应用程序 , 直接内嵌tomcat、jetty和undertow ,提供了固定化的“starter”配置,以简化构建配置 , 尽可能的自动配置spring和第三方库 ,提供产品级的功能,如:安全指标、运行状况监测和外部化配置等 ,绝对不会生成代码,并且不需要XML配置
2. Springboot 的搭建
直接去到springBoot的官网 : https://start.spring.io/
选择完成后点击 generate 即可
将下载下来的压缩包压缩到自己平时存放项目的目录下即可 , 然后在 idea 导入, 因为它要下载大量的依赖, 所以初次导入时间可能会比较久
创建完成后布局如下 :
我们看到 , spring boot 默认有一个启动类 , 它内嵌了 tomcat , 我们通过它就可以直接启动
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
我们直接在 java 目录下编写我们的业务代码即可, 这就是spring boot 的强大之处
3. spring boot 配置文件
虽然spring boot 是声称0配置 , 但是有一些配置是无法避免的
上述自动生成的 使用的配置文件是 application.properties , 它里面采用键值对的方式来设置
信息 .
但是这里我们要介绍的是另一种配置文件 application.yml
它具有很强的格式要求 , 如下 :
server:
port: 8888
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/sellbook?characterEncoding=utf8&useSSL=false&serverTimezone=UTC
username: root
password: root
type: com.alibaba.druid.pool.DruidDataSource
filters: stat
initialSize: 5 #初始化时建立物理连接的个数
minIdle: 1 #最小连接池数量
maxActive: 20 #最大连接池数量
main:
allow-circular-references: true #允许循环依赖
按照空格的缩进来控制层级关系,只要是左边对齐的一列数据都是同一个层级的。层级不对就会出错 , 在里面可以配置数据源 , mybatis等
也可以使用@ConfigurationProperties注解标签将配置文件中的内容映射到类中的
user:
id: 1
sex: "男"
hobby:
-打游戏
-写代码
4. SpringBoot 核心功能
起步依赖 :
起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。
spring boot 在一开始便会为我们处理一些第三方的依赖
自动配置 :
Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是Spring自动完成的。
实现spring boot自动配置的核心注解 : @SpringBootApplication
它是一个复合注解
它里面包含了 @ComponentScan
这个注解标签会在启动时扫描同级包以及包下面的类
@SpringBootConfiguration,通过源码得知它是一个@Configuration,相当于之前的配置文件功能.
@EnableAutoConfiguration是这里最重要的注解,它实现了对Spring Boot应用自动装配的功能。
@EnableAutoConfiguration是利用SpringFactoriesLoader机制加载自动装配配置的,它的配置数据在META-INF/spring.factories中,我们打开spring-boot-autoconfigure jar中的该文件,发现对应着许多个XXXAutoConfiguration配置类.
在它的里面又存在@Import({AutoConfigurationImportSelector.class})
这个注解会根据我们在pom.xml中的配置自动加载对应的组件