一、简介
SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了开发周期。
- Spring的缺点
配置繁琐
依赖繁琐
- SpringBoot的功能
自动配置
起步依赖
辅助功能:嵌入式服务器、安全、指标,健康检测、外部配置等。
小结:Spring Boot 并不是对 Spring 功能上的增强,而是提供了一种简化使用 Spring 的方式。
二、概述
1、起步依赖原理
- 版本锁定
- 依赖传递
2、配置文件
- 分类
properties、yml 、yaml,
在同一级目录下==优先级为:properties>yml > yaml==
- yml数据格式
**对象(map)**:键值对的集合。
person:
name: zhangsan
# 行内写法
person: {name: zhangsan}
**数组**
address:
- beijing
- shanghai
# 行内写法
address: [beijing,shanghai]
**纯量**:单个的、不可再分的值
msg1: 'hello \n world' # 单引忽略转义字符
msg2: "hello \n world" # 双引识别转义字符
**参数引用**
name: lisi
person:
name: ${name} # 引用上边定义的name值
- 获取配置数据
@Value
Evironment
@ConfigurationProperties
- profile
多profile文件方式
application-dev.properties/yml 开发环境
application-test.properties/yml 测试环境
application-pro.properties/yml 生产环境
yml多文档方式
spring:
profiles:
active: dev
---
# 开发环境
server:
port: 8081
spring:
profiles: dev
---
# 生产环境
server:
port: 8082
spring:
profiles: pro
---
# 测试环境
server:
port: 8083
spring:
profiles: test
---
profile激活方式
配置文件: 在配置文件中配置:spring.profiles.active=dev
虚拟机参数:在VM options 指定:-Dspring.profiles.active=dev
命令行参数:java –jar xxx.jar --spring.profiles.active=dev
- 配置文件加载顺序
内部文件加载顺序
1. 【file】./config/:当前项目下的/config目录下
2. 【file】./:当前项目的根目录
3. 【classpath】/config/:classpath的/config目录
4. 【classpath】./:classpath的根目录
外部文件加载顺序
指定配置文件位置
java -jar myproject.jar --spring.config.location=e://application.properties
外部不带profile的properties文件
classpath:/config/application.properties
classpath:/application.properties
三、使用
1、快速入门
- pom文件
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.6</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.2</version>
</plugin>
</plugins>
</build>
- 配置文件
server:
port: 80
spring:
datasource:
url: jdbc:mysql:///db1?serverTimezone=UTC
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
mybatis:
type-aliases-package: com.xingyu.pojo
mapper-locations: classpath:mapper/*Mapper.xml
- xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mapper.UserMapper">
<select id="findAll" resultType="user">
select * from user;
</select>
</mapper>