【发布时间】:2015-03-23 07:33:54
【问题描述】:
@Configuration
@EnableTransactionManagement
@PropertySource(value = "classpath:/properties.properties")
public class DataBaseConfig {
@Resource
private Environment env;
@Bean
public DataSource dataSource() {
String username = env.getProperty(ConfigurationProperties.DATABASE_USERNAME);
env.getProperty("username : " + username);
DriverManagerDataSource dataSource = new DriverManagerDataSource();
//some code
return dataSource;
}
}
我有问题。当我使用 Environment 加载我的属性时,如果它们具有相同的名称,它会将它们替换为系统属性。例如,当我尝试从我的属性文件中加载属性“用户名”时,它会被系统属性“用户名”替换。我知道环境不仅包含我的属性,还包含来自其他来源的其他属性,包括系统属性,但我不知道如何影响它们的顺序。这里最奇怪的是这段代码在 Linux 下运行良好并加载了我需要的属性。但在 Windows 下,它会加载系统属性。我从来没有处理过这种情况,所以我会很感激任何帮助。
【问题讨论】:
标签: java spring properties