我有一个具有注入属性{
"mainThing": {
"$ref": "foo"
},
"things": [
{
"$ref": "foo"
},
{
"$ref": "bar"
}
]
}
的bean BeanA:
private int url
让我们说这个class BeanA { @Value(${"db.url"}) private String url; private DbConnection connection; }
注释类似于Spring Value
。在初始化期间,将使用url字段中的注入属性来初始化连接。此外,Value
中还有一些PostConstruct and PreDestroy
方法。
我的问题是:BeanA
属性更改后,是否可以动态重新实例化BeanA
。我有检测属性变化的机制。现在,我只重新注入该URL,但是我想重新创建此Bean,初始化新连接,然后在所有Dependetn Bean中重新注入此Bean。我不使用Spring Cloud Config。
答案 0 :(得分:0)
如果您根本不使用spring,我建议:
OR
您可能希望使用代理设计模式,其中您的bean由客户端使用,但在内部引用另一个连接bean(“目标” bean),并且目标可以用全新的实例替换。但总是,客户端/用户对代理拥有相同的引用。