你好java程序员,
我在根据活动配置文件读取属性文件时遇到问题。我已经创建了一个spring boot应用程序,我想将我的应用程序部署到不同的环境中,例如开发和生产。我已经搜索了很多,但我找不到解决问题的方法。
我的src / main / resources中有一个名为application-dev.properties的属性文件,我有一个Settings.java,我想读取属性文件。
这是我的Settings.java
@Configuration
@Component
public class Settings {
private static Logger log = Logger.getLogger(Settings.class);
@Value("${TradingBot.production}")
public boolean isProduction;
@Value("${api.KEY}")
public static String API_KEY;
@Value("${api.ORDERS_URL}")
public static String ORDERS_URL;
@Value("${api.TRADES_URL}")
public static String TRADES_URL;
@Value("${api.PARTICIPANTS_URL}")
public static String PARTICIPANTS_URL;
@Value("${api.INDIVIDUAL_URL}")
public static String INDIVIDUAL_URL;
@Value("${api.BALANCE_URL}")
public static String BALANCE_URL;
@Value("${api.TRANSACTIONS_URL}")
public static String TRANSACTIONS_URL;
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer(){
return new PropertySourcesPlaceholderConfigurer();
}
}
根据spring文档,这应该足以读取正确的属性文件,不幸的是,当我打印值时,我得到一个空字符串。
当我运行项目时,它会给我以下输出。
2016-10-31 13:44:04.011 INFO 32992 --- [ main] TradingBot : The following profiles are active: dev
我希望有人可以帮助我。
答案 0 :(得分:1)
感谢M.Denium我知道问题所在。我可以通过在例子的setter中添加@Value属性来解决它:
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
在这种情况下,变量仍然是静态的,它可以从属性文件中获取值。