Spring, работа с аннотациями @Configuration и @Bean
У меня есть код: я
@Configuration
public class BeanSample {
@Bean(destroyMethod = "stop")
public SomeBean someBean() throws Exception {
return new SomeBean("somebean name1");
}
class SomeBean {
String name;
public SomeBean(String name) {
this.name = name;
}
public void stop() {
System.out.println("stop");
}
}
public static void main(String[] args) throws Exception {
BeanSample beanSample = new BeanSample();
SomeBean someBean1 = beanSample.someBean();
ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(
new String[] {"appContext.xml"});
SomeBean someBean2 = (SomeBean) appContext.getBean("someBean");
if (someBean1 == someBean2) System.out.println("OK");
}
}
Я ожидаю, что после запуска приложения BeanSample.getSomeBean () затем SomeBean станет доступнымsomeBean.
Но теперь у меня есть ошибка:Боб не названsomeBean» определено
На самом деле, я не понимаю, какой контекст приложения я должен использовать, чтобы забрать мои бобы?
О @Configuration:
Любые причины, почему я должен использовать аннотацию @Configuration здесь? (с этим мой IDE выделяет мои классы, как тогда связанные с Spring, так что это должно иметь смысл)
-ОК: после того, как я получил ответ, мой код выглядит так:
public static void main(String[] args) throws Exception {
AnnotationConfigApplicationContext appContext = new AnnotationConfigApplicationContext(BeanSample.class);
SomeBean someBean2 = (SomeBean) appContext.getBean("someBean");
if (someBean2 != null) System.out.println("OK");
}