创建具有动态属性值的Springbean



我有以下不可变的类(即在单独的库中,我不能更改(:

public class MyClass implements InitializingBean, BeanNameAware {
private BeanA prop1;
private BeanB prop2;
public MyClass() {}
@Override
public void afterPropertiesSet() {
// do smth with prop1 and prop2
}
}

我需要创建多个不同的MyClass bean,但使用在运行时生成的属性值(prop1,prop2(。

如何实现?

我尝试实现FactoryBean<MyClass>,但方法FactoryBean#getObject没有参数。

不能使用带参数的BeanFactory#getBean,因为MyClass没有这些属性的构造函数参数(它是单独的库(。

您可以使用javax.annotation.@PostContruct

@Component
public class MyClass {
private BeanA prop1;
private BeanB prop2;

@PostConstruct
public void doSomethingAfterInstanced() {
prop1 = null;
prop2 = new BeanB();
}
}

最新更新