具有可配置属性的Spring bean定制

时间:2018-07-31 13:08:46

标签: java spring spring-bean property-placeholder

我有一个xml bean配置,如下所示:

PN   Alt   Val
A    B     5 
C          3 
D    E     4 
F    G     3 

我想添加一个新属性 defaultTimeout ,但是我不想对其进行硬编码。

我想改为放置一些类,该类将从内存缓存中的某些属性中检索此属性的值(与实际位置无关)

我以前听说过并使用过- org.springframework.beans.factory.config.PropertyPlaceholderConfigurer 但是它从属性文件中检索值,这并不是我真正需要的。

能否请您告知我的方向?

2 个答案:

答案 0 :(得分:0)

  

我要放置此属性一些类,而不是从内存缓存中的某些属性中检索此属性的值(与实际位置无关)

将txManager注入此某个类并在那里设置defaultTimeout怎么样?

答案 1 :(得分:0)

尝试查看com.typesafe.config库https://www.javadoc.io/doc/com.typesafe/config/1.2.1。这样可以加载配置文件。

使用此库创建config类型的Bean。这样的事情。这是一个Java配置,但可以适应XML实现。

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.your.package")
public class WebMvcConfig extends WebMvcConfigurerAdapter {
    @Bean
    public Config properties() throws Exception {
        String path = ""; // path to properties file
        Config conf = ConfigFactory.parseFile(new File(path));

        return conf;
    }
}

然后在组件类中,可以自动装配Bean并使用存储在内存Bean中的属性。

@Autowired
private Config properties;
...
properties.getString("your property key");