,我发现了以下内容:Spring上下文扫描行为
2013-03-27 18:51:54,944 ERROR pringframework.web.context.ContextLoader: 227 - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'exporter' defined in URL ... Cannot resolve reference to bean 'dynamicNamingStrategy' while setting bean property 'namingStrategy'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'dynamicNamingStrategy' is defined
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
at
和STS也抱怨:
Multiple annotations found at this line:
- Referenced bean 'dynamicNamingStrategy'
not found
与下面的Spring上下文设置:
在一个项目中,我具有以下(摘录)的jmx管理上下文(core-app-web-common-management-context.xml):
<context:annotation-config />
<context:component-scan
base-package="com.a.b.c.management.*" />
<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter"
lazy-init="false">
<property name="autodetect" value="true"></property>
<property name="namingStrategy" ref="dynamicNamingStrategy"/>
其中dynamicNamingStrategy在不同项目中定义(和打包成一个不同的罐),并在被称为上述组件的扫描,如下
package com.a.b.c.management;
@Component("dynamicNamingStrategy")
public class DynamicNamingStrategy extends KeyNamingStrategy {
......
上面Spring上下文被依次导入到主背景设在同一个项目:
<import resource="classpath*:/META-INF/spring/core-app-web-common-management-context.xml"/>
所以,不知何故@Component扫描DynamicNamingStrategy是不工作...
如果我插件TEAD使用这个属性定义在出口国,那么它的工作原理:
<property name="namingStrategy"><bean class="com.a.b.c.management.DynamicNamingStrategy" /></property>
,但我想明白为什么组件扫描机制,在第一时间上不去,显然我失去了一些东西。
此外,在STS春Explorer视图中缺少的是豆腐为好。启用对配置文件中的元素选项的支持似乎没有什么区别。