У меня есть вопрос о Spring Injection.Spring Injection: Каков правильный способ использования контекста
Основной учебник говорит, что мы должны создать контекст для того, чтобы получить бобы:
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
Однако, если я создаю контекст, в каждом классе, боб я могу получить от этого контекста содержит другой экземпляр. например
public class MyClass1 {
public void myMethod() {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
MyBean myBean1 = (MyBean)context.getBean("myBean");
}
}
public class MyClass2 {
public void myMethod() {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
MyBean myBean2 = (MyBean)context.getBean("myBean");
}
}
Здесь myBean1 и myBean2 два разных объекта, хотя это должно быть одноэлементно.
Каков правильный способ использования контекста, чтобы я мог гарантировать, что создаю только один контекст, который используется всей системой для получения bean-компонентов?
Можно ли использовать Spring, например, Google Guice, который использует аннотацию для адресной инъекции зависимостей?
Большое спасибо.
Вы можете сделать это по весеннему аннотации. Обратитесь к этому http://docs.spring.io/spring/docs/1.2.9/reference/beans.html. –