0
我是Spring的新手,我想爲bean創建一個beanGenerator。我想用這個生成器來克服線程安全問題。任何人都可以幫助我添加/修改代碼,使其工作?這是一種很難描述我的真正的問題,所以我在抽象下面的代碼問題:如何在運行時使用bean定義對象生成/創建新的spring bean?
abstract class BeanDefinition {
abstract public void preprocess();
}
// now we have 1st user specific bean :
class UserSpecifiedBeanDefinition extends BeanDefinition{
@override
public void preprocess() {
// do something
}
}
// we could have more user-specific beans that extend BeanDefinition
....
// Following generator class is used to generate beans
public class BeanGenerator {
private BeanDefinition beanDefinition;
public BeanGenerator(BeanDefinition beanDefinition) {
this.beanDefinition = beanDefinition;
}
public generate() {
BeanDefinition newBean = // create new bean based on beanDefinition? how can I make this work??
newBean.preprocess();
return newBean;
}
}
// In spring.xml, I would like to use them like:
<bean id="generator1" class="com.xxx.xxx.BeanGenerator">
<constructor-arg name="beanDefinition" ref="userSpecifiedBeanDefinition"/>
</bean>
你的範圍原型豆看了? – Thierry
@Thierry是的,但我沒有想到在這種情況下使用原型範圍的方法。你能指出我更多一點嗎?在這種情況下,我有一個抽象的bean定義,隨後用戶將定義他們自己的具體bean定義,並且生成器將根據不同的具體定義生成bean。 – Lubor