前言
我们在使用SpingBoot开发过程中,经常会遇到需要配置一些固定的配置信息,当然需要可动态修改的配置,大多是选择存储在数据库中的,但是当出现不同机构的某些固定信息,每次修改数据库也会比较麻烦,但是我们可以通过yml配置文件,配置每个机构环境的自己的yml,并且在配置文件中加入独有的配置信息,就可以很方便的达到目的,例如配置机构编码名称,接口加签密钥等信息。
一、yml多环境配置
1.先创建一个系统运行时使用yml
提示:其中的dev代表你要使用的yml的别名,例如我这边配置的是dev,那么那个yml文件的名称就是:application-dev.yml 依次类推
spring:
profiles:
active: dev
2.具体的yml配置信息
#开发环境配置
server:
port: 9800
spring:
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
datasource:
druid:
url: jdbc:sqlserver://127.0.0.1:1433;databaseName=Test;
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
username: root
password: root
initial-size: 5 #初始化时建立物理连接的个数。
max-active: 20 #最大连接池数量
min-idle: 5 #最小连接池数量
max-wait: 3000 #获取连接时最大等待时间,单位毫秒
...........
二、yml增加配置信息
1.yml最下方增加你的自定义配置信息
提示:如果你配置的内容是0开头的字符串,例如:01;这种就需要在配置文件中给他加上字符串:"01"
代码如下:
app:
config:
hospital-name: XXXX医院
hospital-code: 666666
2.编写获取配置代码
创建一个HospitalConfig类,用来专门获取配置信息
提示:注意我的${app.config.hospital-name}" 和你yml的别名要保持一致,才能获取到对应的配置内容
代码如下(示例):
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* @author 孤巷.
* @description
* @date 2024/11/22 上午 9:21
*/
@Component
public class HospitalConfig {
@Value("${app.config.hospital-name}")
private String hospitalName;
@Value("${app.config.hospital-code}")
private String hospitalCode;
// Getters
public String getHospitalName() {
return hospitalName;
}
public String getHospitalCode() {
return hospitalCode;
}
}
3.获取配置信息
在你需要获取配置信息的Service里面引入HospitalConfig类,就可以直接使用了
@Resource
HospitalConfig hospitalConfig;
public String test(){
//这里取到的内容,就是你所需要的配置信息了!
String orgId = hospitalConfig.getHospitalCode();//666666
String orgName = hospitalConfig.getHospitalName();//XXXX医院
}
总结
以上就是今天要分享的内容,这个功能还是会比较实用的。