Primavera, trabalhando com anotações @Configuration e @Bean
Eu tenho um código:
@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");
}
}
Eu estou esperando, uma vez que eu inicie o aplicativo, o BeanSample.getSomeBean (), em seguida, o SomeBean é iniciado para estar disponível por 'someBean'.
Bu agora eu tenho um erro:Nenhum bean chamado 'someBean' é definido
Na verdade, eu não entendo qual contexto de aplicativo devo usar para pegar meus grãos?
Sobre o @Configuration:
Quaisquer razões, porque eu deveria usar a anotação @Configuration aqui? (com este, meu IDE destaca minhas aulas como se fossem Spring, então deveria fazer sentido)
-OK: depois que recebi uma resposta, meu código ficou assim:
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");
}