`

@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;
	}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics