码迷,mamicode.com
首页 > 其他好文 > 详细

解决自定义Shiro.Realm扩展类不能用注解(@Resource或@Autowire)自动装配的问题

时间:2016-03-10 14:36:53      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:

问题产生原因:加载Realm时其他Spring配置文件(xml)尚未加载,导致注入失败。

解决方法:编写一个设置类把注入工作提前完成。

package com.xkt.shiro

import org.apache.shiro.realm.Realm;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Configuration;

/**
 * 把securityManager和userRealm装配到ApplicationContext
 */
@Configuration
public class ShiroConfig implements ApplicationContextAware {

    @Override
    public void setApplicationContext(ApplicationContext ac) throws BeansException {
        Realm userRealm = (Realm) ac.getBean("userRealm");
        DefaultWebSecurityManager defaultWebSecurityManager = (DefaultWebSecurityManager) ac.getBean("securityManager");
        defaultWebSecurityManager.setRealm(userRealm);
    }
}

解决自定义Shiro.Realm扩展类不能用注解(@Resource或@Autowire)自动装配的问题

标签:

原文地址:http://www.cnblogs.com/gugia/p/5261524.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!