无法根据活动配置文件读取属性文件

时间:2016-10-31 12:47:04

标签: java spring spring-mvc

你好java程序员,

我在根据活动配置文件读取属性文件时遇到问题。我已经创建了一个spring boot应用程序,我想将我的应用程序部署到不同的环境中,例如开发和生产。我已经搜索了很多,但我找不到解决问题的方法。

我在编辑配置菜单中设置了个人资料。 active profile in edit configuraions

我的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

我希望有人可以帮助我。

1 个答案:

答案 0 :(得分:1)

感谢M.Denium我知道问题所在。我可以通过在例子的setter中添加@Value属性来解决它:

<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">

在这种情况下,变量仍然是静态的,它可以从属性文件中获取值。