先來看問題
糾結了幾個小時終於找到了問題所在,因為shiro的realm屬於Filter,簡單說就是初始化realm時,spring還未加載相關業務Bean,那么解決辦法就是將springmvc的配置文件加載提前。
解決辦法
打開web.xml文件
OK,問題解決!
解決方式2(不建議)
public TenantServiceTypeTask(ServletContextEvent event) { super(); ServletContext sc=event.getServletContext(); ApplicationContext beans = WebApplicationContextUtils.getRequiredWebApplicationContext(sc); userService = (TenantIdentityService) beans.getBean("userService"); }
通過手動的形式,從spring的容器中獲取相應的bean.
參考:
http://blog.csdn.net/qq_32588349/article/details/51793822