一,获取普通用户开发类型的Bean,例如Service,Dao等
一般Spring项目中在项目运行起来时都把各个想要的bean实例注入到Spring的IOC容器中,但是有些时候我们想在Spring之外的地方,例如在Filter,Intercept等地方想获取并使用Spring容器中的某些功能bean,尤其是service类型的bean,可以使用Spring提供的一下方法,步骤如下:
1,首先得到对应的工厂类的实例
import org.springframework.web.context.support.WebApplicationContextUtils;
final BeanFactory bf = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());
2,利用工厂类实例获取指定某类class的工作类(如service)bean实例,然后使用工作类bean;
final XService xService = bf.getBean(XServiceImpl.class);
也即Java直接从Spring获取工厂类型的Bean实例,再从工厂类型Bean实例获取指定类类型的service