springCloud项目启动不能实例化使用xml实例化的shiro的bean

springboot 2.0.4+ shiro 项目启动成功,shiro的bean实例化正常,但是
加上springCloud的任何一个引用(目前加的consul,eurka,openFeign),能正常启动,但是shriro的用户认证类中的@Autowired注入的类全是null值,不知道为什么,求解!!!
如下是项目代码
1出错代码
图片说明
2shiro是通过xml配置的
图片说明
3springCloud配置
图片说明

            特别强调: 没加cloud的时候项目运行正常,加上cloud的jar包,未改动任何启动类和其他类的配置,项目再启动shiro的UserRealmShiro认证里的@Autowired全是null值,
            求:什么原因导致的?怎么排查?怎么解决?

3个回答

因为shiro的bean是auto proxy.是最早注册的这一类,所以你在这个配置文件里从bean工厂里拿到的都是null.
但是这个config只是初始化,所以两个方法.一个是shiro提前帮你注册,但是这个会有一个弊端,会使一些功能失效(舍去,如果需要知道具体的原因,可以@我)
第二个方法,不提供自动注册,比如你可以new一个,但是有一个弊端,因为web项目是异步堵塞进程,所以每次访问都会造成很大的开销,还有一个办法是加上@Lazy注解,直接延迟加载.

m0_37620899
喜欢吃猫的鱼 回复qq_23367963: 启动没问题...是不是没有扫描到注解
大约一年之前 回复
qq_23367963
qq_23367963 回复m0_37620899: 没有解决哇,项目可以正常启动,就是登陆的时候有问题. 大哥,求解啊
大约一年之前 回复
m0_37620899
喜欢吃猫的鱼 回复qq_23367963: 解决了吗?你首先要知道是项目启动前还是项目启动后出现的问题
大约一年之前 回复
qq_23367963
qq_23367963 如果shiro的功能我直接new对象使用,不用自动注入了,会有什么问题发生了,性能低点无所谓了 万分感谢您的解答
大约一年之前 回复
qq_23367963
qq_23367963 我加了@Lazy或者在xml里加上了lazy-init="true"还是报错
大约一年之前 回复
qq_23367963
qq_23367963 您说的第一个方法会使一些功能失效指定是?比如呢? 还有具体原因是什么啊?
大约一年之前 回复

建议从配置文件加载和bean包扫描上入手检查下,或者试试UserRealmShiro类用注解(@Componet)的方式来定义bean.

看看xml配置文件中是否扫描当前类的目录,类上是否加@Componet之类的注解

qq_23367963
qq_23367963 UserRealmShiro是要注入shiro管理器里的,@Componet搞不定吧,还有别的办法么?
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!