2 zx123456007 zx123456007 于 2017.01.11 10:33 提问

Spring 整合 apache shiro, 多次实例化Realm

Spring 整合 apache shiro 时,当Realm中有自动注入(@Autowired)时,会实例化三次,

 @Component
@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)
public class MyRealm extends AuthorizingRealm  {

        public MyRealm() {
            System.out.println("in Myrelm()");

        }

        @Autowired
        private UserService userService;
}

当UserService上有@Autowired 时,会执行三次构造方法,输出三次“in Myrelm()”。
如果去掉@Autowired 就只有一次。

在其他地方不会出现此问题,比如Controller中自动注入UserService。

1个回答

JE_GE
JE_GE   2017.01.11 23:39

MyRealm 如果是单例的话,就不应该有三次,感觉要看整体代码

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!