java中定义方法并设置属性_java-使用工厂方法中定义的属性

我编写了一个工厂bean,它根据应用程序特定的属性文件中配置的属性创建一个缓存管理器.

概念是可以选择多个实现,每个实现都使用其他配置属性.

例如:

> noop缓存,不带参数,

> ehcache与#max个对象

>具有多个ip和端口配置的内存缓存.

我认为最好不要在application-context.xml中指定所有特定于缓存的应用程序参数,而是从现有属性源中读取它们.

我的尝试是使用EnvironementAware接口来访问环境.但是似乎使用< context:property-placeholder>配置的属性文件不包含在PropertiesSources中.

example.properties

cache.implementation=memcached

cache.memcached.servers=server1:11211,server2:11211

application-context.xml

在CacheManagerFactory.java中

public class CacheManagerFactory implements factorybean,EnvironmentAware {

private Environement env;

@Override

public CacheManager getObject() throws Exception {

String impl = env.getrequiredProperty("cache.implementation"); // this fails

//Do something based on impl,which requires more properties.

}

@Override

public void setEnvironment(Environment env) {

this.env = env;

}

@Override

public Class> getObjectType() {

return CacheManager.class;

}

@Override

public boolean isSingleton() {

return true;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值