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

高权重网站怎么发软文贵州seo学校

高权重网站怎么发软文,贵州seo学校,佛山高端网站建设,线上营销话术Spring 的声明式缓存注解#xff08;Cacheable, CachePut, CacheEvict 等#xff09;是 AOP 技术在实际应用中最强大、最经典的范例之一#xff0c;其原理与 Transactional 非常相似。 核心思想#xff1a;一个智能的“秘书” 你可以把 Cacheable 的 AOP 实现想象成一个极…Spring 的声明式缓存注解Cacheable, CachePut, CacheEvict 等是 AOP 技术在实际应用中最强大、最经典的范例之一其原理与 Transactional 非常相似。 核心思想一个智能的“秘书” 你可以把 Cacheable 的 AOP 实现想象成一个极其高效的“秘书”。 你 (调用方)老板。目标方法 (findProductById): 一个需要花费大量时间和精力去调研才能回答的“问题”比如去档案馆查资料。AOP 代理 (Proxy): 你的秘书。缓存 (Cache): 秘书的“备忘录”或“笔记”。 当你向秘书提出一个问题时调用方法 秘书首先会翻看自己的备忘录查缓存。如果备忘录里有答案缓存命中秘书会直接告诉你答案然后回去继续做其他事。他根本不会去档案馆进行那次耗时又费力的调研。你作为老板很快就得到了答案甚至不知道秘书是直接给的还是去查了资料。如果备忘录里没有答案缓存未命中秘书会告诉你“老板请稍等我需要去查一下。” 然后他会亲自去档案馆进行调研执行目标方法。当他拿到调研结果后他会非常聪明地先把结果记在自己的备忘录里放入缓存以备你下次再问。最后他才把这个调研结果告诉你。 Cacheable 的 AOP 实现原理 Cacheable 的背后是一个功能极其强大的环绕通知 (Around)由 Spring 的 CacheInterceptor 实现。 代理和拦截和事务一样当 Spring 发现一个 Bean 的方法上有 Cacheable 注解时会为它创建一个 AOP 代理对象。所有对该方法的调用都会先被这个代理对象拦截。 CacheInterceptor (环绕通知) 开始工作 这个拦截器在调用真正的目标方法之前会执行以下逻辑 a. 生成缓存键 (Cache Key) * 拦截器会解析 Cacheable 注解。 * 它使用 value 属性 (如 products) 作为缓存的命名空间或称为缓存区域。 * 它使用 key 属性 (如 #id) 中的 SpEL (Spring Expression Language) 表达式来根据方法参数动态生成一个唯一的键。例如当调用 findProductById(123L) 时#id 会被替换为 123L最终生成的键可能是 products::123。 b. 查询缓存 * 拦截器拿着这个生成的键去配置好的缓存管理器CacheManager其背后可能是 Redis, Caffeine, EhCache 等中进行查询。 决策点缓存是否命中 这是环绕通知威力最大的体现因为它可以控制目标方法是否执行。 情况一缓存命中 (Cache Hit) 拦截器在缓存中找到了对应的值。它会立即将这个值返回给调用方。最关键的一步目标方法 findProductById 根本不会被执行 这就是所谓的“方法短路 (Short-Circuiting)”。它避免了数据库查询或远程调用。 情况二缓存未命中 (Cache Miss) 拦截器在缓存中没有找到任何东西。它会继续执行调用链即调用 pjp.proceed() 来执行原始的目标方法 findProductById。当目标方法成功执行并返回一个结果后拦截器会捕获这个返回值。它会将这个返回值以之前生成的缓存键存入缓存中以备下次使用。最后将这个返回值交还给调用方。 其他缓存注解的 AOP 原理 CachePut: 这个注解同样使用 AOP 拦截。但它的逻辑是总会执行目标方法比如更新数据库的操作。在方法执行成功后它会总是将方法的返回值更新到缓存中。它用于确保在数据更新后缓存中的数据也是最新的。它没有“短路”行为。 CacheEvict: 这个注解也使用 AOP 拦截。它的逻辑通常是在目标方法成功执行后默认根据 key 去缓存中删除一个或多个条目。它用于在删除或修改数据后清除相关的旧缓存确保数据一致性。 总结 注解AOP 实现方式 (简化理解)是否执行目标方法CacheableAround查缓存 - (命中) 短路返回 / (未命中) 执行并存入缓存不一定CachePutAround执行方法 - 将结果更新到缓存总是执行CacheEvictAfterReturning (默认)执行方法 - 从缓存中删除条目总是执行 所以Spring 的声明式缓存是 AOP 的实践之一。它通过 AOP 将复杂的、与业务无关的缓存管理逻辑完全分离让开发者只需关注业务本身极大地提高了代码的可读性和可维护性。
http://www.pierceye.com/news/256923/

相关文章:

  • 灵台门户网站建设网站开发费用会计分录
  • wordpress替换公共js北京seo推广服务
  • 公司付的网站费怎么做分录黑色网站配色
  • 体育门户网站源码峰峰做网站
  • 山西网站建设多少钱电商网站建设需要
  • 海西电子商务网站建设wordpress 主题宽度
  • 网站建设首选公司wordpress需要mysql
  • 织梦 旅游网站模板深圳公司招牌制作
  • PHP网站开发如何建立vipwordpress页面伪静态
  • 主题公园旅游景区网站建设网站后台图片模板
  • 慈溪网站建设慈溪WordPress点击文章显示404
  • 网站建设与seo网站开发项目总结范文
  • 做竞彩网站代理犯法么建站公司 网站
  • 浙江建设证书查询seo服务公司深圳
  • 长沙协会网站设计专业服务医疗信息化软件公司排名
  • 北京网站制作一般多少钱黑色网站欣赏
  • 广州建设工程造价管理站wordpress获取文章title
  • 免费购物网站源码网站开发的论文引言
  • 商城网站开发需要哪些人员本机建的网站打开却很慢
  • 网站建设哪专业学会python做网站
  • vs怎么添加图片做网站地方门户网站管理系统
  • 三亚做网站的公司科技网站推荐
  • 电商网站运维怎么做自己做网站创业
  • seo有哪些网站集团公司网站 案例
  • 传媒大学附近网站建设公司天津市工程建设公众信息网官网
  • 关于网站建设与维护的参考文献家装设计费用多少钱一平方
  • 网站建设与管理专业概述网站建设报价费用是多少
  • asp医院网站源码破解版北京企业做网站报价
  • 个人做电商网站赚钱吗门业网站模板
  • 企业产品微网站收费吗wordpress移服务器改域名