SpringXML配置bean和注释配置bean的混淆
最近我对一件事感到困惑。 我在SpringXML配置bean和注释配置bean的混淆,spring,spring-mvc,Spring,Spring Mvc,最近我对一件事感到困惑。 我在applicationContext.xml中定义了placeholder-configurer,在applicationContext.xml中定义了config1 bean,例如,它被称为myService,它有一个属性:name我用@value($env{name})注入值。 这个bean也用@Service注释,然后我在dispatch-servlet.xml中添加。 我认为属性:name没有得到值,,因为Xml bean被组件扫描bean覆盖,占位符配置器
applicationContext.xml
中定义了placeholder-configurer
,在applicationContext.xml
中定义了config1 bean
,例如,它被称为myService
,它有一个属性:name
我用@value($env{name})
注入值。
这个bean也用@Service
注释,然后我在dispatch-servlet.xml中添加
。
我认为属性:name没有得到值,,因为Xml bean被组件扫描bean覆盖,占位符配置器不能在应用程序上下文和分派servlet上下文之间共享,但实际上它有我在属性文件中配置的值。
有人能给我解释一下吗?
任何事情都会很感激的。谢谢
您创建了一个bean的两个版本——一个在applicationContext中定义,另一个在dispatcherServlet中定义。这通常是错误的
正如您所建议的,占位符配置器在父/子上下文中不共享。它仅适用于定义它的上下文
你能展示一下你的applicationContext.xml和servlet上下文吗?正如我所描述的,里面几乎什么都没有,而且我在家,无法连接到我的办公桌面,所以我现在可以共享它了。@Alexander Kudrevatykh,我知道这不是一个好方法,尽管它在我的项目中起作用,所以我感到困惑,我知道这不是在不同的背景下分享的,你能解释一下我的困惑吗?