在Java开发中,需要在Filter注入Service时直接使用@Autowired注入会失败,service对象会为null,例如
@Autowired
private UserService userService;
解决办法:
XmlWebApplicationContext cxt =(XmlWebApplicationContext)WebApplicationContextUtils.getWebApplicationContext(request.getServletContext());
if(cxt != null && cxt.getBean("userServiceImpl") != null && userService == null) {
userService = (UserService) cxt.getBean("userServiceImpl");
}
备注:UserService 是接口,UserServiceImpl为其实现类