首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用bean定义对象在运行时生成/创建新的spring bean?

如何使用bean定义对象在运行时生成/创建新的spring bean?
EN

Stack Overflow用户
提问于 2017-06-19 04:25:10
回答 0查看 704关注 0票数 0

我是Spring的新手,我想为模板bean编写一个beanGenerator。我想使用这个生成器来克服线程安全问题。有没有人可以帮我添加/修改代码使其正常工作?很难描述我真正的问题,所以我在下面的代码中抽象了这个问题:

代码语言:javascript
运行
复制
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>
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44619228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档