[英]How to create an Object from an Bean Definition in Spring 4?
我有一個返回類型為'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
(通常帶有DefaultListableBeanFactory
實例)中注冊BeanDefinition
,然后將其用作常規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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.