Bootstrap

SpringBoot基础

一、配置文件

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

九、宽松绑定

  1. @ConfigurationProperties绑定属性时支持属性名宽松绑定,这个宽松体现在属性名的命名规则上
  2. @Value注解不支持松散绑定规则
  3. 绑定前缀名推荐采用烤肉串命名规则,即使用中划线做分隔符

十、校验

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;
}
;