簡體   English   中英

如何將Bean注入BeanDefinitionParser?

[英]How to inject bean into BeanDefinitionParser?

我有一個解析器。

class MyAbstractBeanDefinitionParser extends AbstractBeanDefinitionParser {
    @Autowired
    private String playerName;
    // getters/setters
}

我想將一個String(playerName)注入解析器。 為此,我創建了一個bean並將其連接到上下文。

ConfigurableListableBeanFactory beanFactory = ctx.getBeanFactory();
beanFactory.registerSingleton("playerName", name);

當我創建GenericXmlApplicationContext它執行BeanDefinitionParser方法'parseInternal',但我沒有看到我的依賴關系。 這是我的問題:如何將MyAbstractBeanDefinitionParser注入MyAbstractBeanDefinitionParser

如果我正確理解,您正在嘗試將String值注入playerName字段。 使用@Value批注可以輕松完成。

像這樣:

class MyAbstractBeanDefinitionParser extends AbstractBeanDefinitionParser {
    @Value("The value String you want to inject")
    private String playerName;
}

在此示例中,playerName字段將保留以下值:

您要注入的值String

為了使上述操作有效,您只需要做的配置,只需將以下行添加到Bean XML Configuration文件中:

<context:annotation-config/>

這是嚴格使用Spring XML bean配置的,因此消除了用java代碼創建bean的過程。 加載上下文后,spring將創建以下bean:

<bean name = "MyAbstractBeanDefinitionParser" class="x.x.package.MyAbstractBeanDefinitionParser">
    <property name="playerName" value="YourString">
    </property>
</bean>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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