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