簡體   English   中英

如何在Spring 4中從Bean定義創建對象?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM