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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Spring Boot整合Apache Shiro小节
下面介绍一下我在项目中如何将Apache Shiro整合入Spring Boot项目中的。Apache Shiro是一款功能强大,灵活的开源框架,不像Spring Security那么庞大和复杂,Shiro易于理解和使用。 先介绍下Apache Shiro的特性和架构,Shiro官方网站:http://shiro.apache.org/  Apache Shiro 特性:
springBoot整合shiro,realm和config文件编写
1.Realm获取安全数据(如用户、角色、权限),就是说SecurityManager要验证用户身份,那么它需要从Realm获取相应的用户进行比较以确定用户身份是否合法;也需要从Realm得到用户相应的角色/权限进行验证用户是否能进行操作;可以把Realm看成DataSource , 即安全数据源。package com.javon.boot.realm; import com.javon.b...
spring+shiro 整合之自己注册会话和自写realm
Apache Shiro是java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比SPRing Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就足够了。   因为我总结的是使用SpringMVC和Apache Shiro整合,注重的是整合和使用,至于基础,我
SpringMvc+MyBatis+Shiro整合,shiro的realm不能注入Bean
springMvc+Mybatis和shiro整合,shiro的realm引入Autowire加入接口数据,但是一直无法成功注入,提示问题如下: Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.sxkj.service.inter
spring集成shiro不进入自定义realm
前天学习shiro的时候,学着学着突然发现和spring集成的时候不能进入自定义realm了,查了两天也没找到原因,后来加了一位大神,帮我解决了这个问题,在这里非常感谢。 问题如下: 需求是:登录我写的网站的任何一个url都会默认跳到用户登录页面, 当我打开服务器,输入url,确实进入登录页面,然而当我输入正确的账号密码的时候还是依旧在登录页面。 这就奇怪了,我赶紧去看看教程的配置,没毛病
Springboot多realm集成,无ini文件,无xml配置
网上shiro的集成案例在多realm这块基本都是基于ini配置文件的,或者部分基于xml配置。本人使用springboot框架,这种技术本身出发点就是标榜少配置文件或0配置(pom除外)。所以这里我把所有配置相关都集中在代码中处理。现在列出部分代码段,完整代码可以从我前面文章中获取:Spring Boot集成无状态Shiro–内容详细介绍。两个realm realm设置: @Bean
shiro权限框架自定义Realm示例
shiro权限框架自定义Realm示例
Spring Boot 集成Shiro的多realm配置
我在做毕设的时候采用shiro进行登录认证和权限管理的实现。其中需求涉及使用三个角色分别是:学生、教师、管理员。现在要三者实现分开登录。即需要三个Realm——StudentRealm和TeacherRealm、AdminRealm,分别处理学生、教师和管理员的验证功能。 但是正常情况下,当定义了多个Realm,无论是学生登录,教师登录,还是管理员登录,都会由这三个Realm共同处理。这是因为,...
ssm和shiro整合,shiro的自定义的realm不能自动注入的问题
在自定义realm的时候注入的时候就会报错,去掉注解@Autowired 运行就会没有问题。错误的原因应该在于注解无法注入 @Autowired private UserService userService; // 设置realm的名称 @Override public void setName(String name) { super.setN
springMvc和shiro整合,shiro的realm不能自动注入的问题
springMvc和shiro整合,shiro的realm不能自动注入的问题 最近研究shiro,一开头就遇到了大困难,调试了3小时。 问题描述如下:shiro和spring mvc整合,shiro自定义了realm。 其中自定义的realm里面居然不能使用@Autowired注解标签注入相关的用户service。 百思不得其解,一项项跟踪,发现原来shiro 自定义realm的认证阶段属于