gpt4 book ai didi

java - 如何在 Spring 4 中从 Bean 定义创建对象?

转载 作者:行者123 更新时间:2023-11-30 03:22:39 25 4
gpt4 key购买 nike

我有一个返回类型为“AbstractBeanDefinition”的方法,该方法应该设置所有必要的属性并返回它。

    public AbstractBeanDefinition constructJMSMessage() {

BeanDefinitionBuilder theMessagingService = BeanDefinitionBuilder.rootBeanDefinition(MessagingService.class);
theMessagingService.addPropertyValue(..);
theMessagingService.addPropertyValue(..);
theMessagingService.addPropertyValue(..);

return theMessagingService.getBeanDefinition()

}

在调用方,我想根据此方法返回的 bean 定义创建一个对象。我怎样才能做到这一点?

   public void ConstructIt()
{
MessagingService obj = constructJMSMessage();
}

最佳答案

您需要首先向 BeanDefinitionRegistry 注册 BeanDefinition(通常是一个 DefaultListableBeanFactory 实例),然后将其用作常规 bean。

FileSystemXmlApplicationContext c = new FileSystemXmlApplicationContext();
c.refresh();

BeanDefinitionRegistry bdr = (BeanDefinitionRegistry) c.getBeanFactory();
BeanDefinitionBuilder bdb = BeanDefinitionBuilder.genericBeanDefinition(String.class)
.addConstructorArgValue("test");
BeanDefinition bd = bdb.getBeanDefinition();
bdr.registerBeanDefinition("testBean", bd);

String tb = c.getBean("testBean", String.class);

关于java - 如何在 Spring 4 中从 Bean 定义创建对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30977772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com