shiro mgt包下CachingSecurityManager类

2021SC@SDUSC
CachingSecurityManager实现了SecurityManager,Destroyable,CacheManagerAware,EventBusAware四个接口

CachingSecurityManager «interface» SecurityManager «interface» Destroyable «interface» CacheManagerAware «interface» EventBusAware

私有变量

CacheManager

private CacheManager cacheManager;

cacheManager主要用于各种缓存操作,可以为null

EventBus

private EventBus eventBus;

EventBus用于发布和接收Shiro生命周期中的事件。

含有方法

CachingSecurityManager

public CachingSecurityManager() {
        //use a default event bus:
        setEventBus(new DefaultEventBus());
    }

构造方法,设置一个EventBus‘

getCacheManager

获得cancheMangager

setCacheManager

public void setCacheManager(CacheManager cacheManager) {
        this.cacheManager = cacheManager;
        afterCacheManagerSet();
    }

手动设置cacheManager

afterCacheManagerSet

protected void afterCacheManagerSet() {
        applyEventBusToCacheManager();
    }

告诉子类cacheManager已经被设置,可以被使用

getEventBus

获得eventBus对象

setEventBus

public void setEventBus(EventBus eventBus) {
        this.eventBus = eventBus;
        afterEventBusSet();
    }

手动设置eventBus对象

applyEventBusToCacheManager

protected void applyEventBusToCacheManager() {
        if (this.eventBus != null && this.cacheManager != null && this.cacheManager instanceof EventBusAware) {
            ((EventBusAware)this.cacheManager).setEventBus(this.eventBus);
        }
    }

对cacheManager设置eventBus对象

afterEventBusSet

protected void afterEventBusSet() {
        applyEventBusToCacheManager();
    }

一个模板,告诉子类eventBus已经设置可以被使用

destroy

public void destroy() {
        LifecycleUtils.destroy(getCacheManager());
        this.cacheManager = null;
        LifecycleUtils.destroy(getEventBus());
        this.eventBus = new DefaultEventBus();
    }

销毁 cacheManager对象并且重新设置eventBus对象

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值