跳到主要内容

注入外部配置

@InjectSettings 可以注入配置项。配置文件中的值支持 ${KEY} 占位符,因此敏感信息可以通过 JVM -D 参数或操作系统环境变量传入。

配置文件:

db.user = ${DB_USER}
db.pwd = ${DB_PWD}

Bean:

public class DataBaseBean {
@InjectSettings("db.user")
private String user;

@InjectSettings("db.pwd")
private String password;
}

启动程序时传入参数:

java -DDB_USER=username -DDB_PWD=password -jar app.jar

@InjectSettings("${db.user}") 也会读取名为 db.user 的 Settings 配置项。这个写法适合需要把配置项名保持在占位符形式的场景。

如果配置项不存在,可以在注解中设置默认值:

public class DataBaseBean {
@InjectSettings(value = "db.poolSize", defaultValue = "8")
private int poolSize;
}