Spring读取Properties配置文件
一、application.properties 配置文件
①:用Spring容器获取Environment变量,然后getProperty获取到配置的value
ConfigurableEnvironment environment = context.getEnvironment();
String name = environment.getProperty("name");
②:@Value注解
使用@Value("${key}"
③:@ConfigurationProperties
@ConfigurationProperties注解有一个prefix属性,通过指定的前缀,绑定配置文件中的配置,如:
@Component @ConfigurationProperties(prefix = "global.jdbc") public class GlobalProperties { private String url; private String driver; private String username; private String password; ...getter/setter }
二、自定义properties 配置文件
①:@PropertySource + @Value("${key}")
@PropertySource :使用@PropertySource读取外部配置文件中的k/v保存到运行的环境变量Environment中;
如:@PropertySource("classpath:mysql.properties")
取值方式:
①:使用@Value("${key}"
②:也可以用Spring容器获取Environment变量,然后getProperty获取到配置的value
ConfigurableEnvironment environment = context.getEnvironment();
String name = environment.getProperty("name");
②:自行直接读取配置文件的值并缓存
public final class PropertiesUtil {
private static final Logger LOGGER = LoggerFactory.getLogger(PropertiesUtil.class);
private PropertiesUtil() {
}
private static final Properties PROPERTIES = readProperties(
"config.properties",
"mysql.properties",
"redis.properties",
"mongo.properties",
"talos.properties"
);
private static Properties readProperties(String... confFile) {
final Properties properties = new Properties();
try {
for (String path : confFile) {
final ClassPathResource resource = new ClassPathResource(path);
if (resource.exists()) {
properties.load(new InputStreamReader(resource.getInputStream(), StandardCharsets.UTF_8));
}
}
} catch (IOException e) {
LOGGER.error(e.getMessage(), e);
}
return properties;
}
public static String get(String key) {
return PROPERTIES.getProperty(key);
}
}
END.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了