一、配置文件
SpringBoot将配置信息集中在一个文件中写,不管你是服务器的配置,还是数据库的配置,总之都写在一起
配置文件加载优先级:
application.properties > application.yml > application.yaml
file :config/application.yml 【最高】
file :application.yml
classpath:config/application.yml
classpath:application.yml 【最低】
不同配置文件中相同配置按照加载优先级相互覆盖,不同配置文件中不同配置全部保留
读取配置文件全部数据
SpringBoot提供了一个对象,能够把所有的数据都封装到这一个对象中,这个对象叫做Environment,使用自动装配注解可以将所有的yaml数据封装到这个对象中
读取对象数据
使用注解@ConfigurationProperties指定该对象加载哪一组yaml中配置的信息。
二、程序打包
SpringBoot程序是基于Maven创建的,在Maven中提供有打包的指令,本操作可以在Idea环境下执行。
mvn package
程序包打好以后,就可以直接执行了。在程序包所在路径下,执行指令。
java -jar 工程包名.jar
打包配置插件:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
三、命令行启动常见问题及解决方案:
查询端口
netstat -ano
**# 查询指定端口**
netstat -ano |findstr "端口号"
**# 根据进程PID查询进程名称**
tasklist |findstr "进程PID号"
**# 根据PID杀死任务**
taskkill /F /PID "进程PID号"
**# 根据进程名称杀死任务**
taskkill -f -t -im "进程名称"
四、设置临时属性
SpringBoot提供了灵活的配置方式,如果你发现你的项目中有个别属性需要重新配置,可以使用临时属性的方式快速修改某些配置。在启动的时候添加上对应参数就可以了。
java –jar springboot.jar –-server.port=80
如果你发现要修改的属性不止一个,可以按照上述格式继续写,属性与属性之间使用空格分隔。
java –jar springboot.jar –-server.port=80 --logging.level.root=debug
临时属性优先级>配置文件
五、多环境开发(yaml多文件版)
主配置文件
spring:
profiles:
active: pro # 启动pro
application-pro.yaml
server:
port: 80
application-dev.yaml
server:
port: 81
六、多环境开发独立配置文件
将所有的配置根据功能对配置文件中的信息进行拆分,并制作成独立的配置文件,命名规则如下
- application-devDB.yml
- application-devRedis.yml
- application-devMVC.yml
- spring:
profiles:
active: dev
include: devDB,devRedis,devMVC
注意:当主环境dev与其他环境有相同属性时,主环境属性生效;其他环境中有相同属性时,最后加载的环境属性生效
改良:
spring:
profiles:
active: dev
group:
"dev": devDB,devRedis,devMVC
"pro": proDB,proRedis,proMVC
"test": testDB,testRedis,testMVC
七、日志
设置日志级别,root表示根节点,即整体应用日志级别
logging:
level:
root: debug
八、启动热部署
1.手动开启
1.导入开发者工具对应的坐标
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
2.构建项目
2.自动开启
1.
2.
设置条件某些配置不参加热部署
spring:
devtools:
restart:
# 设置不参与热部署的文件或文件夹
exclude: static/**,public/**,config/application.yml
关闭热部署
spring:
devtools:
restart:
enabled: false
九、宽松绑定
- @ConfigurationProperties绑定属性时支持属性名宽松绑定,这个宽松体现在属性名的命名规则上
- @Value注解不支持松散绑定规则
- 绑定前缀名推荐采用烤肉串命名规则,即使用中划线做分隔符
十、校验
1.开启校验框架
<!--1.导入JSR303规范-->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
<!--使用hibernate框架提供的校验器做实现-->
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
2.在需要开启校验功能的类上使用注解@Validated开启校验功能
@Component
@Data
@ConfigurationProperties(prefix = "servers")
//开启对当前bean的属性注入校验
@Validated
public class ServerConfig {
}
3.对具体的字段设置校验规则
@Component
@Data
@ConfigurationProperties(prefix = "servers")
//开启对当前bean的属性注入校验
@Validated
public class ServerConfig {
//设置具体的规则
@Max(value = 8888,message = "最大值不能超过8888")
@Min(value = 202,message = "最小值不能低于202")
private int port;
}