当前位置: 首页 > news >正文

NetCore使用Aop和内存缓存对接口、方法进行数据缓存

通过Aop+内存缓存对接口、方法进行缓存

源码地址https://gitee.com/wangbenchi66/nuget

1. nuget包引入

必须引入包 至少在2024.11.7以上

<PackageReference Include="WBC66.Cache.Core" Version="2024.11.7" />

必须开启内存缓存 否则后续步骤无法正常进行

//开启内存缓存
builder.Services.AddMemoryCacheSetup();

2. 对方法使用内存缓存

//使用autofac(内部会自动进行程序集扫描注入,不需要手动注入)
builder.Host.AddAutofacHostSetup(builder.Services, options =>
{//开启内存缓存拦截器(带有IProxyService接口的类将会被拦截),带有CacheResultAttribute特性的方法将会被缓存options.AddMemoryCacheResultAop();
});

3. 对控制器接口使用内存缓存

builder.Services.AddControllers(options =>
{//添加自定义的缓存过滤器options.Filters.Add<CacheResultFilter>();
});

方法缓存使用示例

//同一个方法不同参数会进行多次缓存
//接口注入直接继承IProxyService接口(继承接口后就不需要再手动注入了),方法上使用CacheResultAttribute特性即可
public class CacheResultService : ICacheResultService
{//缓存5秒[CacheResult(5)]public Student GetStudentAsync(string name){return new Student { Name = name };}
}
public interface ICacheResultService : IProxyService
{Student GetStudentAsync(string name);
}

控制器缓存使用示例

[HttpGet]
[CacheResult(5)]//缓存5秒
public object Get()
{_cacheResultService.GetStudentAsync("这是参数");return "ok";
}
http://www.lryc.cn/news/481729.html

相关文章:

  • playwright学习记录2--定位方式
  • 响应式网页设计--html
  • C#核心(8) 静态成员
  • 关于git使用的图文教程(包括基本使用,处理冲突问题等等)超详细
  • Axios 的 responseType 属性详解及 Blob 与 ArrayBuffer 解析
  • redis集群介绍
  • JDK中常用的包有哪些?
  • 校园官网练习---web
  • MySQL中指定字段的某个值排在前面
  • 【51单片机】I2C总线详解 + AT24C02
  • 直接插入排序法
  • mysql中InnoDB索引与MyISAM索引
  • Redis如何保证数据不丢失(可靠性)
  • 【计网】物理层学习笔记
  • vue链接跳转
  • IP地址是电脑自带的吗?是根据什么而决定的‌
  • JavaFX史上最全教程 - Shape - JavaFX矩形椭圆
  • SpringBoot实现的企业资产管理系统
  • python-读写Excel:openpyxl-(4)下拉选项设置
  • 【C++】详解RAII思想与智能指针
  • Qt 环境实现视频和音频播放
  • 【人工智能训练师】7 大数据处理与应用
  • nginx配置文件介绍及示例
  • 如何在算家云搭建YOLOv5(物体检测)
  • 现场工程师日记-MSYS2迅速部署PostgreSQL主从备份数据库
  • 使用Element UI实现一个拖拽图片上传,并可以Ctrl + V获取图片实现文件上传
  • 私域流量圈层在新消费时代的机遇与挑战:兼论开源 AI 智能名片、2 + 1 链动模式、S2B2C 商城小程序的应用
  • vxe-vxe-colgroup后端返回数据 对数据进行处理 动态合并分组表头(v-if控制表格渲染(数据请求完成后渲染))
  • ESLint 使用教程(五):从输入 eslint 命令到最终代码被处理,ESLint 中间究竟做了什么工作
  • 【安全测试】sqlmap工具(sql注入)学习