mam kod:Wiosna, współpracując z @Configuration i @Bean adnotacji
@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");
}
}
Czekam, gdy zacznę aplikacji, BeanSample.getSomeBean(), a następnie SomeBean jest uruchamiany będzie dostępna " someBean ".
Bu teraz mam błąd: Nie fasoli nazwie „someBean” definiuje
Właściwie nie dot zrozumieć, które app-kontekst należy użyć do pick up moje fasolę?
O @Configuration:
jakichkolwiek powodów, dlaczego warto stosować tutaj @Configuration adnotacji? (Z tego, mój IDE podkreśla moje zajęcia niejako Wiosna związane potem, więc powinno sensu)
- OK: po Dostałem odpowiedź mój kod wygląda następująco:
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");
}
OK, zmieniłem wtedy moje pytanie. – ses
I zmieniłem odpowiedź. ;) – rolve
ok. to działa. Ja również przeniosłem BeanSample - nie żeby być wewnętrznym. Pod warunkiem, domyślny konstruktor BeanSample. Próbuję zrozumieć, dlaczego potrzebuję: @ Konfiguracja, a następnie .. – ses