我是新與Spring Framework和我嘗試了以下例子:@Resource in Spring does not work?
首先,我創建了兩個非常簡單的類
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)Annotiation來連接兩個對象。
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" />
[..]
現在,當我運行MyApp的的主法,我得到以下:
I am ObjectA
I am ObjectB
--------------
null
--------------
null
--------------
所以,當我直接來使用ApplicationContext。 getBean(ObjectA.class)在main方法中得到ObjectA的一個實例。當我想要進入MyApp對象時,它不起作用。但我認爲Spring應該已經在MyApp類中注入了兩個對象。我做錯了什麼?在此先感謝您的幫助。
你有沒有在你的XML編寫要掃描的包? '' –
2015-02-23 15:17:43
我想在課堂上你應該用'@ Autowired'而不是'@ Resource' – 2015-02-23 15:18:46