Spring Boot配置文件详解
程序员文章站
2022-05-03 16:07:04
...
1、简介
Spring Boot应用在pom.xml文件中引入了模块化的Starter POMS,这些模块有都自己默认的配置,当我们创建Spring Boot应用时,都会默认的创建一个全局的配置文件,要么是application.properties,要么是application.yml文件,而这个全局配置文件的作用就是修改Spring Boot自动配置的默认值。
-
.properties 配置示例如下:
spring.application.name=springboot server.port=8080
-
.yml 配置示例如下:
spring: application: name: springboot server: port: 8080
2、自定义属性和加载
spring: application: name: springboot server: port: 8080 #自定义属性 my: zjw: name: zjw age: 18
@RestController public class UserDefinedAttribute { @Value("${my.zjw.name}") private String name; @Value("${my.zjw.age}") private int age; @GetMapping(value = "/getAttributes") public String getAttributes(){ return "姓名:" + this.name + ",年龄:" + this.age; } }
浏览器访问:localhost:8080/getAttributes
3、使用随机值
#使用随机值 com: zjw: blog: value: ${random:value} number: ${random:int} bignumber: ${random:long} test1: ${random:int(10)} test2: ${random:int[10,20]}
分别设置:随机值,随机整数,随机长整数,10以内的随机数,10-20以内的随机数
4、将配置映射到实体中
#将属性映射到实体中 com: user: name: zhangjiwei age: 18 maps: { k1: v1,k2: 12} lists: - zjw001 - zjw002 dog: dogName: lili dogAge: 2
注意当我们要使用注解:@ConfigurationProperties会提示我们要添加配置文件处理器
即引入依赖:
<!--导入配置文件处理器,配置文件进行绑定就会有提示--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
@Data public class Dog { private String dogName; private int dogAge; }
@Configuration @ConfigurationProperties(prefix = "com.user") @Data public class User { private String name; private int age; private Map<String,String> maps; private List<String> lists; private Dog dog; }
@RestController public class HiController { @Autowired private User user; @GetMapping("/test1") public String test1(){ return this.user.toString(); } }
浏览器访问:localhost:8080/test1
5、YAML多文档快实现多环境配置
spring: profiles: active: dev #文档块区分为三个--- --- server: port: 8080 spring: profiles: dev #使用随机值 cn: zjw: blog: value: ${random:value} number: ${random:int} bignumber: ${random:long} test1: ${random:int(10)} test2: ${random:int[10,20]} #自定义属性 my: zjw: name: zjw age: 18 #将属性映射到实体中 com: user: name: zhangjiwei age: 18 maps: { k1: v1,k2: 12} lists: - zjw001 - zjw002 dog: dogName: lili dogAge: 2 #文档块区分为三个--- --- server: port: 8081 spring: profiles: test #文档块区分为三个--- --- server: port: 8082 spring: profiles: prod
上一篇: 【机房收费系统】-查询
下一篇: 机房收费系统之组合查询
推荐阅读
-
ThinkPHP惯例配置文件详解
-
十、Spring boot 简单优雅的整合 Swagger2
-
使用Spring Boot和AspectJ实现方法跟踪基础结构
-
spring boot 一个项目启动多个实例
-
spring boot 2 集成JWT实现api接口认证
-
Jenkins + Docker + dockerfile-maven-plugin + Harbor CI/CD spring-boot项目的最轻量级配置
-
Spring Boot 的静态资源处理
-
Spring Boot2 系列教程(一) | 如何使用 IDEA 构建 Spring Boot 工程
-
Spring-Boot使用嵌入式容器,那怎么配置自定义Filter呢
-
创建简单spring boot项目