Tôi nghĩ liên kết này thể hiện cách tốt nhất để lấy ngữ cảnh ứng dụng ở bất kỳ đâu, ngay cả trong lớp không đậu. Tôi thấy nó rất hữu ích. Hy vọng nó cũng như vậy cho bạn. Dưới đây là mã trừu tượng của nó
Tạo một lớp mới ApplicationContextProvider.java
package com.java2novice.spring;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public class ApplicationContextProvider implements ApplicationContextAware{
private static ApplicationContext context;
public static ApplicationContext getApplicationContext() {
return context;
}
@Override
public void setApplicationContext(ApplicationContext ac)
throws BeansException {
context = ac;
}
}
Thêm một mục nhập trong application-context.xml
<bean id="applicationContextProvider"
class="com.java2novice.spring.ApplicationContextProvider"/>
Trong trường hợp chú thích (thay vì application-context.xml)
@Component
public class ApplicationContextProvider implements ApplicationContextAware{
...
}
Lấy bối cảnh như thế này
TestBean tb = ApplicationContextProvider.getApplicationContext().getBean("testBean", TestBean.class);
Chúc mừng !!