Are you sure you want to delete this task? Once this task is deleted, it cannot be recovered.
|
2 years ago | |
---|---|---|
.. | ||
src | 2 years ago | |
README.md | 2 years ago | |
pom.xml | 2 years ago |
本 demo 演示如何获取配置文件的自定义配置,以及如何多环境下的配置文件信息的获取
<dependencies>
<dependency>
<groupId>com.xkcoding</groupId>
<artifactId>common-tools</artifactId>
</dependency>
<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>
<!--
在 META-INF/additional-spring-configuration-metadata.json 中配置
可以去除 application.yml 中自定义配置的红线警告,并且为自定义配置添加 hint 提醒
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
分别使用两种方式获取配置
@Data
@Component
public class ApplicationProperty {
@Value("${application.name}")
private String name;
@Value("${application.version}")
private String version;
}
@Data
@ConfigurationProperties(prefix = "developer")
@Component
public class DeveloperProperty {
private String name;
private String website;
private String email;
}
@RestController
public class PropertyController {
private final ApplicationProperty applicationProperty;
private final DeveloperProperty developerProperty;
@Autowired
public PropertyController(ApplicationProperty applicationProperty, DeveloperProperty developerProperty) {
this.applicationProperty = applicationProperty;
this.developerProperty = developerProperty;
}
@GetMapping("/property")
public Dict index() {
return Dict.create().set("applicationProperty", applicationProperty).set("developerProperty", developerProperty);
}
}
application.yml
server:
port: 8080
servlet:
context-path: /demo
spring:
profiles:
active: prod
application-dev.yml
application:
name: dev环境 @artifactId@
version: dev环境 @version@
developer:
name: dev环境 xkcoding
website: dev环境 https://xkcoding.com
email: dev环境 237497819@qq.com
application-prod.yml
application:
name: prod环境 @artifactId@
version: prod环境 @version@
developer:
name: prod环境 xkcoding
website: prod环境 https://xkcoding.com
email: prod环境 237497819@qq.com
编写配置提示,additional-spring-configuration-metadata.json
参考: src/main/resources/META-INF/additional-spring-configuration-metadata.json
PropertiesApplication
;http://localhost:8080/demo/property
,检查输出结果;application.yml
配置文件中的 spring.profiles.active
参数从 prod
修改为 dev
,重新启动,观察输出结果变化。一个用来深度学习并实战 spring boot 的项目,目前总共包含 66 个集成demo,已经完成 55 个。
Java SVG CSS JavaScript SQL other