SpringBoot抽取配置和配置拆分

将属性值抽成配置,易于维护和修改

1.使用@ConfigurationProperties注解自定义配置

  1. 在SpringBoot中自定义配置使用注解@ConfigurationProperties(prefix = "xxx")表示获取配置文件中的xxx配置。
  2. pom.xml中引入如下的依赖
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-configuration-processor</artifactId>
	<optional>true</optional>
</dependency>
  1. 自定义实体类
@Component
@ConfigurationProperties(prefix = "wechat")
public class WechatConfig {

    private String appId;
    private String secret;
    private String token;
    private String url;

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public String getAppId() {
        return appId;
    }

    public void setSecret(String secret) {
        this.secret = secret;
    }

    public String getSecret() {
        return secret;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public String getToken() {
        return token;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUrl() {
        return url;
    }
}
  1. application.yml 中写法,一定要注意yml语法,缩进和空格。
wechat:
  appId: wxxxx
  secret: xxxxx
  token: hos
  url: http://68uew6.natxxfree.xx 
  1. 这样就自定义了属性配置,将配置文件的属性赋值给自定义的实体类,随意更改。

2.使用@Value()注解给属性复制

  1. 在代码中定义好配置的属性
@Value("${api.pack}")
private String pack;

//给属性设置默认值,不配置的时候默认值生效
@Value("${api.enableCache:true}")
private boolearn enableCache;
  1. 在application中配置相应的内容
api:  
 pack: com.fj.controller
 enableCache: true

配置拆分

1.多环境配置文件

  1. 项目可能分为开发环境,测试环境,生产环境等,各个环境的配置存在差异。这时候就需要拆分配置文件,区分环境。

  2. application.yml 编写相同的配置,并激活指定环境的配置文件。各个环境的配置文件中则编写不同的配置内容。

application.yml的配置

spring:
  profiles:
    active: dev                         #激活的配置文件

xxxx相同的配置内容也写在这个文件

application-dev.yml的配置

spring:
  datasource:
    type: datasource
    driverClassName: driverClass
    url: devUrl
    username: devName
    password: devPwd

application-prod.yml的配置

spring:
  datasource:
    type: datasource
    driverClassName: driverClass
    url: prodUrl
    username: prodName
    password: prodPwd

2.启动指定配置文件

除了上述的方式外,也可以在启动时指定配置文件的位置。
image

posted @ 2022-04-15 23:02  加瓦同学  阅读(314)  评论(0)    收藏  举报