`

@Cacheable注解无效解决办法

阅读更多
手动使用cache

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
		
		//ehcache缓存使用
		  	Element el = null;
	        CacheManager manager = CacheManager.create();
	        Cache cache = manager.getCache("myCache");
	        if(cache.isKeyInCache("shiro"+principals)){
             el = cache.get("shiro"+principals);
	            return (AuthorizationInfo) el.getObjectValue();
	        }
	    //ehcache缓存使用 
		
		String userName = (String) principals.getPrimaryPrincipal();
		Front_login login= new Front_login();
		login.setAccount(userName);
		int id=fi.select_loginlk(login).getId();
		login.setId(id);
		Front_login returnLogin = fi.get_login(login);
		//角色集合
		Set<String> Roles =  new HashSet<String>();
		for(Front_role r :returnLogin.getRoles()){
			Roles.add(r.getName());
		}
		System.out.println("调用shiro自定义域");
		//权限集合
		Set<String> Urls = fi.get_all_url(login);
		SimpleAuthorizationInfo authorizationInfo=new SimpleAuthorizationInfo();
		authorizationInfo.addRoles(Roles);
		authorizationInfo.addStringPermissions(Urls);
		//ehcache缓存使用 
		if(authorizationInfo!=null){
	                el = new Element("shiro"+principals, authorizationInfo);
	                cache.put(el);
	     }
		//ehcache缓存使用
		return authorizationInfo;
	}


分享到:
评论

相关推荐

    pring4新特性缓存框架增强共6页.pdf.zip

    1. `@Cacheable` 注解:这个注解可以应用在方法上,表示该方法的返回结果应该被缓存。当方法被调用时,如果缓存中存在相应的键值,则会从缓存中返回结果,避免了重复计算。 2. `@CacheEvict` 注解:用于清除缓存中...

    自定义redis序列化和解决穿透问题.docx

    在可能存在并发问题的方法上使用`@Cacheable`注解,并结合`@Synchronized`注解来确保线程安全,防止多线程环境下数据同步延迟。但需要注意,`@Synchronized`会影响方法的并发性能,因此应谨慎使用。 2. **编码方式*...

    springboot缓存一致性解决

    `@Cacheable`、`@CacheEvict`和`@CachePut`是Spring Cache中最常用的三个注解。`@Cacheable`用于缓存方法的返回结果,`@CacheEvict`用于清除缓存,`@CachePut`则是在调用方法后更新缓存,无论方法是否已存在于缓存...

    Spring面试全套攻略

    ### Spring面试全套攻略知识点详解 ... - **@CacheEvict**:用于清理过期或无效缓存,释放资源。 以上知识点覆盖了Spring面试中经常遇到的一些核心问题,从原理到实战均有涉及,希望能帮助求职者更好地准备面试。

    spring3 hibernate4 ehcache实例

    例如,使用`@Cacheable`、`@CacheEvict`和`@CacheConfig`等注解,分别用于读取缓存、清除缓存和全局缓存配置。 4. **实体类缓存配置** 对于需要缓存的实体类,我们需要在实体类上添加`@Cacheable`注解,或者在对应...

    springboot-01-cache.rar_browndl4_goldk4u_mill18b_springboot

    2. **缓存注解**:Spring提供了`@Cacheable`、`@CacheEvict`、`@CachePut`和`@CacheConfig`四个主要的注解。`@Cacheable`用于将方法结果缓存;`@CacheEvict`用于清除指定缓存;`@CachePut`用于更新缓存;`@...

    EasyCache-master.zip

    例如,可以使用 `@Cacheable` 注解来指定方法的返回结果应被缓存,`@CacheEvict` 注解用于清除缓存,`@CachePut` 注解则在方法执行后更新缓存。这种方式降低了代码的复杂性,提高了开发效率。 2. **配置管理**:...

    springboot2使用ehcache缓存

    在Spring Boot 2.0中,Ehcache是一个流行的、高性能的本地缓存解决方案,用于提升应用程序性能。本文将深入探讨如何在Spring Boot项目中集成并使用Ehcache进行数据缓存。 首先,Ehcache是由Talend公司维护的一个...

    更简单的Java缓存框架 jscache.docx

    1. **`@Cacheable`**:此注解用于标记读取操作的方法,表示该方法的结果应该被缓存。具体配置包括: - `prefix`: 缓存键前缀。 - `key`: EL表达式,用于生成实际的缓存键。 - `ttl`: 缓存项的有效时间。 - `...

    Hibernate二级缓存架包.rar

    例如,使用`@Cacheable`、`@Cache`等注解: ```java @Entity @Cacheable(true) @Cache(region = "myCacheRegion", usage = CacheConcurrencyStrategy.READ_WRITE) public class MyEntity { // entity fields and ...

    hibernate二级缓存

    例如,使用注解`@Cacheable`和`@Cache`。 ```java @Entity @Cacheable(true) @Cache(region = "myEntityCache", usage = CacheConcurrencyStrategy.READ_WRITE) public class MyEntity { // entity fields and ...

    Hibernate缓存机制探讨

    例如,我们可以使用`@Cacheable`注解标记实体类,使用`@Cache`注解来定义缓存区域和策略。同时,对于查询结果的缓存,可以使用`Query.setCacheable(true)`方法,但需要注意避免缓存大量结果集导致的内存问题。 此外...

    Hibernate缓存示例

    3. **实体类缓存配置**:在实体类上使用`@Cacheable`、`@Cache`等注解进行缓存配置,定义缓存策略和区域。 ```java @Entity @Cacheable(true) @Cache(region = "myEntityRegion", usage = CacheConcurrencyStrategy...

    hibernate3 缓存

    启用查询缓存需要在查询语句上添加`@Cacheable`注解或使用`Query.setCacheable(true)`方法。 **缓存的配置与优化** 配置Hibernate的缓存涉及以下几个方面: 1. **选择缓存提供者**:根据项目需求选择合适的二级缓存...

    cache 实例

    5. **缓存实现**:在Java中,常见的缓存实现有Java内置的`java.util.concurrent.ConcurrentHashMap`(常用于简单的本地缓存实现),Google的Guava库中的`LoadingCache`,以及Spring框架提供的`@Cacheable`注解支持的...

    SpringBootJPA + EhCache

    Spring Boot还支持使用`@Cacheable`、`@CacheEvict`等注解实现方法级的缓存管理。 3. **自定义缓存Key生成规则** 默认情况下,Spring Cache会基于方法参数的哈希值生成缓存Key,但有时这可能不满足需求。可以通过...

    ehcache-2.8.0-distribution.tar.gz

    3. `@Cacheable`注解:Spring框架集成Ehcache后,可直接在方法上使用该注解,实现自动缓存结果。 四、Ehcache性能优化 1. **缓存分区**:根据数据的访问模式,将缓存划分为多个分区,减少锁竞争,提高并发性能。 2....

    spring自动加载缓存

    1. **@Cacheable**:这是最常用的注解,用于标记那些可以被缓存的方法。当方法被调用时,Spring会检查缓存中是否存在对应的结果,如果存在则直接返回,无需再次执行方法;如果不存在,执行方法并将结果存入缓存。 2...

    a simple cache for android and java.zip

    另外,Spring框架的`@Cacheable`注解可以方便地将缓存集成到业务逻辑中。 5. **my_source文件** "my_source"可能包含的是这个简单缓存的源代码。通常,源码会包括缓存的创建、插入、查询、更新和删除操作的实现,...

Global site tag (gtag.js) - Google Analytics