前些日子写了个拦截器里面获取Spring对象的,写的个方法是需要 request的,今天需要搞个线程,而且获取不到 request了,再加上获取 request的方法也不通用,这里来写个通用的。
SpringContext 对象的获取方式有三种
1.从 request 里面获取
以获取一个 名字为 userInfoService 的对象来说,代码示例
可以很直观的看到,这个需要 HttpServletRequest
// 获取 servlet上下文
ServletContext sc = request.getSession().getServletContext();
// 获取 spring 容器
AbstractApplicationContext cxt = (AbstractApplicationContext) WebApplicationContextUtils.getWebApplicationContext(sc);
if(cxt != null && cxt.getBean("userInfoService") != null && userInfoService == null){
// 取出 userInfoService
userInfoService = (UserInfoService) cxt.getBean("userInfoService");
}