Java @春天的资源不工作?
我是Spring框架的新手,我尝试了以下示例: 首先,我创建了两个非常简单的类Java @春天的资源不工作?,java,spring,Java,Spring,我是Spring框架的新手,我尝试了以下示例: 首先,我创建了两个非常简单的类 public class ObjectA { @Override public String toString() { return "I am ObjectA"; } } public class ObjectB { @Override public String toString() { return "I am ObjectB";
public class ObjectA {
@Override
public String toString() {
return "I am ObjectA";
}
}
public class ObjectB {
@Override
public String toString() {
return "I am ObjectB";
}
}
不,我想使用Spring管理的这个类。
因此,我创建了另一个类,它使用@Resource(javax.annotation.Resource)注释来连接这两个对象
public class MyApp {
@Resource
public ObjectA oa;
@Resource
public ObjectB ob;
public void info() {
System.out.println("--------------");
System.out.println(oa);
System.out.println("--------------");
System.out.println(ob);
System.out.println("--------------");
}
public static void main( String[] args ) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("mySpringConfig.xml");
System.out.println(applicationContext.getBean( ObjectA.class ));
System.out.println(applicationContext.getBean( ObjectB.class ));
MyApp myApp = applicationContext.getBean( MyApp.class );
myApp.info();
}
}
mySpringConfig.xml包含以下内容:
[..]
<bean id="objectA" class="com.mySpringCompany.ObjectA" />
<bean id="objectb" class="com.mySpringCompany.ObjectB" />
<bean id="myApp" class="com.mySpringCompany.MyApp" />
[..]
因此,当我在main方法中直接使用applicationContext.getBean(ObjectA.class)时,我得到了一个ObjectA实例。当我想进入MyApp对象时,它不起作用。但我认为Spring应该在MyApp类中注入这两个对象。我做错了什么?提前感谢您的帮助。您很好地用XML定义了所有3个bean 但是您还需要通过注释激活配置,否则就没有什么可解释的
@Resource
。只有在您指示Spring这样做的情况下,Spring才会这样做
这将处理@Resource
您可以简单地将其定义为bean:
<bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor"/>
或者,您可以使用:
<context:annotation-config>
您是否在xml中编写了要扫描的包<代码>我认为在课堂上你应该使用@Autowired
而不是@Resource
,那应该是
。
<context:annotation-config>