Я новичок с Spring Framework, и я попытался следующий пример:@Resource весной не работает?
Сначала я создал два очень простых классов
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-Метод MyApp я получаю следующее:
I am ObjectA
I am ObjectB
--------------
null
--------------
null
--------------
Так что, когда я непосредственно использовать ApplicationContext. getBean (ObjectA.class) в основном методе Я получаю экземпляр ObjectA. Когда я хочу попасть в объект MyApp, он не работает. Но я думаю, что Spring должен был ввести два объекта в класс MyApp. Что я сделал неправильно? Заранее благодарим за любую помощь.
ли вы пишете в вашем XML, какой пакет для сканирования? ' ' –
, и я думаю, что в классе вы должны использовать '@ Autowired' вместо' @ Resource' –