我有一个解析器。
class MyAbstractBeanDefinitionParser extends AbstractBeanDefinitionParser {
@Autowired
private String playerName;
// getters/setters
}
我想向解析器注入一个String(playerName)。为此,我创建了一个bean并将其连接到上下文。
ConfigurableListableBeanFactory beanFactory = ctx.getBeanFactory();
beanFactory.registerSingleton("playerName", name);
当我创建GenericXmlApplicationContext
时,它会执行BeanDefinitionParser
方法' parseInternal'但我没有看到我的依赖。以下是我的问题:如何将playerName注入MyAbstractBeanDefinitionParser
?
答案 0 :(得分:0)
如果我理解正确,您正尝试将一个String值注入playerName
字段。这可以使用@Value
注释轻松完成。
像这样:
class MyAbstractBeanDefinitionParser extends AbstractBeanDefinitionParser {
@Value("The value String you want to inject")
private String playerName;
}
在此示例中,playerName字段将保存值:
要注入的值
您必须执行的唯一配置,为了使上述操作正常,只需在Bean XML配置文件中添加以下行:
<context:annotation-config/>
答案 1 :(得分:0)
这严格使用 Spring XML bean配置,从而消除了java代码中的bean创建;加载上下文后,spring将创建下面的bean:
<bean name = "MyAbstractBeanDefinitionParser" class="x.x.package.MyAbstractBeanDefinitionParser">
<property name="playerName" value="YourString">
</property>
</bean>