参考 : https://ask.csdn.net/questions/947552
场景 : 在未由Spring管理的类中获取由Spring管理的类实例,发现直接new之后,该实例中的所有注入都是空的,网上搜索之后找到该方案
1.Service注解设定bean名称
@Service("testService")
2.根据bean名称获取由Spring管理的类实例
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class ApplicationContextUtil implements ApplicationContextAware {
private static ApplicationContext context;
public void setApplicationContext(ApplicationContext context)
throws BeansException {
this.context = context;
}
public static ApplicationContext getContext() {
return context;
}
}
3.在未由Spring管理的类中获取由Spring管理的类,其中的两种方式
TestService tesrService = (TestService)ApplicationContextUtil.getContext().getBean("tesrService ");
TestService tesrService = (TestService)ApplicationContextUtil.getContext().getBean(TestService .class);
END。