项目配置shiro原缓存注解失效

项目用springboot + shiro + ehcache @cacheable 注解不起作用原因

Shiro框架初始化比Spring框架的某些部件早,导致使用@Autowire注入Shiro框架的某些类不能被Spring正确初始化。

https://stackoverflow.com/questions/21512791/spring-service-with-cacheable-methods-gets-initialized-without-cache-when-autowi

百度到的助力的博客

http://blog.csdn.net/elonpage/article/details/78965176

解决办法

1:在Shiro框架中注入Bean时,不使用@Autowire,使用ApplicationContextRegister.getBean()方法,手动注入bean。保证该方法只有在程序完全启动运行时,才被注入。

2:使用@[email protected]注解,设置注入到Shiro框架的Bean延时加载(即在第一次使用的时候加载)

我只尝试了第一种

总之把shiro相关的类中用到的spring管理的类不用自动注入即可

对于这样的问题解决起来真心觉得无力。自己对源码看不懂,也看不过来抓不住重点。百度又作用有限,真心觉得编程就是门玄学了。

原文地址:https://www.cnblogs.com/shuiliuhualuo/p/8467761.html

时间: 2024-08-01 12:20:45

项目配置shiro原缓存注解失效的相关文章

SpringBoot整合Shiro 涉及跨域和@Cacheable缓存/@Transactional事务注解失效问题(五)

1. 跨域(多出现在前后端分离项目中) (1) 跨域介绍可参考:跨域(CORS) (2) SpringBoot中解决跨域方式有: A. 使用@CrossOrigin注解: B. 实现Filter类,重写doFilter方法 package com.ruhuanxingyun.config; import cn.hutool.core.util.StrUtil; import org.springframework.context.annotation.Configuration; import

源码分析之FastJson全局配置日期格式导致@JSONField(format = "yyyy-MM-dd")注解失效

出现的问题 我全局配置的时间格式是:yyyy-MM-dd HH:mm:ss @JSONField注解配置的时间格式是:yyyy-MM-dd 最终的返回结果是:yyyy-MM-dd HH:mm:ss 问题:为啥不是以注解定义的时间格式为主呢? 先说答案,后面再分析: FastJson的全局配置日期格式会导致@JSONField注解失效 使用建议: 1.若全局配置了日期格式,就不要使用@JSONField注解 2.若想使用@JSONField注解,就不要全局配置日期格式 一.FastJson全局配置

shiro+SpringMVC 项目 配置404页面

说的配置404,大家都会想到去web.xml里面配置 <error-page> <error-code>404</error-code> <location>/404.html</location> </error-page> 可是如果我有业务需求,当发生404,我要记录相关信息呢?或者说404的展示页面我也有需要动态获取的资源呢?那么静态页面就力不从心了. 那么先写一个处理404的方法 //404 @RequestMapping(v

SSM项目与Shiro项目的整合(单体式项目)

1.项目的包结构: 2.jar包,配置文件及工具类 2.1pom.xml的配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=&qu

springboot配置shiro权限管理,网搜搜采集网站权限控制代码

import outshine.shiro.authc.AccountSubjectFactory; import outshine.shiro.filter.AuthenticatedFilter; import outshine.shiro.realm.AccountRealm; import org.apache.shiro.cache.CacheManager; import org.apache.shiro.cache.ehcache.EhCacheManager; import or

Apache shiro(4)-缓存

shiro的可以权限控制内容包括:URL地址.Web页面的元素.以及方法,即shiro对用户权限的控制是细粒度的.从用户的一次访问来说,他可能需要最多经过三种.多次的验证.这里的多次怎么说呢?如果说Web页面的有10个元素加了Shiro标签,则一个页面的加载就需要10次验证.一句话:Shiro验证用户权限的频率很高,即访问数据库取得用户权限信息的频率很高.同时,用户的权限信息,是基本稳定的.很明显,这样的情景需要--缓存. shiro对缓存的支持 shiro并没有实现缓存的功能,shiro的缓存

shiro中基于注解实现的权限认证过程

授权即访问控制,它将判断用户在应用程序中对资源是否拥有相应的访问权限. 如,判断一个用户有查看页面的权限,编辑数据的权限,拥有某一按钮的权限等等. 一.用户权限模型 为实现一个较为灵活的用户权限数据模型,通常把用户信息单独用一个实体表示,用户权限信息用两个实体表示. 用户信息用 LoginAccount 表示,最简单的用户信息可能只包含用户名 loginName 及密码 password 两个属性.实际应用中可能会包含用户是否被禁用,用户信息是否过期等信息. 用户权限信息用 Role 与 Per

shiro中部分SpringCache失效问题

1.问题抛出 今天在做Springboot和shiro集成时,发现一个严重的问题.部分service的缓存和事务失效,debug代码时,发现这些有问题的service实例都不是代理生成的,所以事务和缓存就失效了(事务和缓存依赖代理类实现).继续查问题,发现这些有问题的service全部被shiro的realm所依赖,所以怀疑是shiro影响了 所以做一下测试: shiro中用到的ResourceService public class LocalRealmService extends Real

ReactNative项目配置要点

这篇文章存在问题, 仅供参考, 完整配置参见: http://www.jianshu.com/p/7a6639d67783 今天尝试运行ReactNative的Example项目, 在配置项目时候, 需要注意几点事项. 1. npm install缓慢 npm install运行很慢, 无法忍受, 更换缓存服务器可以加快速度. npm install -g cnpm --registry=http://registry.npm.taobao.org 参考: http://blog.csdn.ne