Tôi có một mã số:mùa xuân, làm việc với @Configuration và chú thích @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");
}
}
Tôi đang mong đợi, khi tôi bắt đầu ứng dụng, BeanSample.getSomeBean() sau đó SomeBean đang bắt đầu được cung cấp bởi ' someBean '.
Bu bây giờ tôi có một lỗi: Không đậu có tên là 'someBean' được định nghĩa
Thực ra, tôi chấm không hiểu được các ứng dụng bối cảnh tôi nên sử dụng để chọn đậu của tôi lên?
Về @Configuration:
Bất kỳ lý do này, lý do tại sao tôi nên sử dụng @Configuration chú thích ở đây? (Với thế này, IDE của tôi nhấn mạnh các lớp học của tôi vì nó là mùa xuân liên quan sau đó, vì vậy nó nên có ý nghĩa)
- OK: sau khi tôi nhận được một câu trả lời mã của tôi trông như thế này:
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, tôi đã thay đổi câu hỏi của mình rồi. – ses
Và tôi đã thay đổi câu trả lời. ;) – rolve
ok. nó hoạt động. Tôi cũng chuyển BeanSample - không phải là bên trong. Ngoài ra, đã cung cấp hàm tạo mặc định cho BeanSample. Đang cố gắng hiểu tại sao tôi cần: @Configuration then .. – ses