1.ResourceFilter扩展定制
① 定义类、实现IResourceFilter/IAsyncIResourceFilter接口,继承Attribute父类
②实现方法
③标记在API方法上
C#
**注意:
只要是框架提供的接口,抽象类;我们是不能直接使用的,需要通过扩展使用。
接口:实现接口,实现方法,把实现植入;
抽象类:自定义来继承抽象类,覆写方法,把实现类植入
CustomResourceFilterAttribute特点:
使用OnResourceExecuting方法+OnResourceExecuted方法 把要控制器构造函数的执行+API调用给包裹起来了
2.ResourceFilter扩展缓存
ResourceFilter的特点,适合什么场景应用呢? —ResourceFilter天生就是为了缓存而生的。
为什么说ResourceFilter更适合做缓存? —ResourceFilter做缓存性能更高;
请求处理的环节会更少,所以ResouceFilter更适合做缓存
缓存:就是一个临时存储区域,以一个Key-value格式保存数据
Key —保存数据的标识,也需要这个标识Key才能获取缓存。
请求来了 —在还没有做业务逻辑计算之前 —判断缓存是否存在,如果存在,就直接返回缓存的值。
如果不存在,就应该去做计算,计算完毕,把结果保存到缓存中去;
缓存的特点:如果缓存区域中的值没有变化,且Key不变的,获取的值就应该是之前的值
使用URL作为Key —URL不变,缓存就应该不变