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

上海网站备案审核无锡网站建设选千客云网络

上海网站备案审核,无锡网站建设选千客云网络,外贸网站布局,网站整站html前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到教程。 Cacheable是用来声明方法是可缓存的。将结果存储到缓存中以便后续使用相同参数调用时不需执行实际的方法。直接从缓存中取值。最简单的格…  前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到教程。 Cacheable是用来声明方法是可缓存的。将结果存储到缓存中以便后续使用相同参数调用时不需执行实际的方法。直接从缓存中取值。最简单的格式需要制定缓存名称。  例如 Cacheable(books) public Book findBook(ISBN isbn) {...} 在上面的代码片段中findBook方法与名为books的缓存想关联。每次调用该方法时将在缓存中检查该请求是否已执行以免重复执行。虽然在大多数情况下只有一个缓存被声明注释允许指定多个名称以便使用多个缓存。这种情况下在执行方法之前每个缓存都会检查之前执行的方法只要有一个缓存命中即直接从缓存中返回相关的值。  即使没有实际执行缓存方法所有其他不包含该值的缓存也将被更新。  例如 Cacheable({books, isbns}) public Book findBook(ISBN isbn) {...} 默认key生成  默认key的生成按照以下规则  - 如果没有参数,则使用0作为key  - 如果只有一个参数使用该参数作为key  - 如果又多个参数使用包含所有参数的hashCode作为key 自定义key的生成  当目标方法参数有多个时有些参数并不适合缓存逻辑  比如 Cacheable(books) public Book findBook(ISBN isbn, boolean checkWarehouse, boolean includeUsed) 其中checkWarehouseincludeUsed并不适合当做缓存的key.针对这种情况Cacheable 允许指定生成key的关键属性并且支持支持SpringEL表达式。推荐方法  再看一些例子 Cacheable(cacheNamesbooks, key#isbn) public Book findBook(ISBN isbn, boolean checkWarehouse, boolean includeUsed)Cacheable(cacheNamesbooks, key#isbn.rawNumber) public Book findBook(ISBN isbn, boolean checkWarehouse, boolean includeUsed)Cacheable(cacheNamesbooks, keyT(someType).hash(#isbn)) public Book findBook(ISBN isbn, boolean checkWarehouse, boolean includeUsed)Cacheable(cacheNamesbooks, key#map[bookid].toString()) public Book findBook(MapString, Object map) 缓存的同步 sync  在多线程环境下某些操作可能使用相同参数同步调用。默认情况下缓存不锁定任何资源可能导致多次计算而违反了缓存的目的。对于这些特定的情况属性 sync 可以指示底层将缓存锁住使只有一个线程可以进入计算而其他线程堵塞直到返回结果更新到缓存中。  例 Cacheable(cacheNamesfoos, synctrue) public Foo executeExpensiveOperation(String id) {...} 属性condition  有时候一个方法可能不适合一直缓存例如可能依赖于给定的参数。属性condition支持这种功能通过SpEL 表达式来指定可求值的boolean值为true才会缓存在方法执行之前进行评估。  例 Cacheable(cacheNamesbook, condition#name.length 32) public Book findBook(String name) 此外还有一个unless 属性可以用来是决定是否添加到缓存。与condition不同的是unless表达式是在方法调用之后进行评估的。如果返回false才放入缓存与condition相反。 #result指返回值 例 Cacheable(cacheNamesbook, condition#name.length 32, unless#result.name.length 5) public Book findBook(String name) CachePut 如果缓存需要更新且不干扰方法的执行,可以使用注解CachePut。CachePut标注的方法在执行前不会去检查缓存中是否存在之前执行过的结果而是每次都会执行该方法并将执行结果以键值对的形式存入指定的缓存中。 CachePut(cacheNamesbook, key#isbn) public Book updateBook(ISBN isbn, BookDescriptor descriptor) 注意应该避免CachePut 和 Cacheable同时使用的情况。 CacheEvict annotation spring cache不仅支持将数据缓存还支持将缓存数据删除。此过程经常用于从缓存中清除过期或未使用的数据。  CacheEvict要求指定一个或多个缓存使之都受影响。此外还提供了一个额外的参数allEntries 。表示是否需要清除缓存中的所有元素。默认为false表示不需要。当指定了allEntries为true时Spring Cache将忽略指定的key。有的时候我们需要Cache一下清除所有的元素。 CacheEvict(cacheNamesbooks, allEntriestrue) public void loadBooks(InputStream batch) 清除操作默认是在对应方法成功执行之后触发的即方法如果因为抛出异常而未能成功返回时也不会触发清除操作。使用beforeInvocation可以改变触发清除操作的时间当我们指定该属性值为true时Spring会在调用该方法之前清除缓存中的指定元素。 CacheEvict(cacheNamesbooks, beforeInvocationtrue) public void loadBooks(InputStream batch) CacheConfig 有时候一个类中可能会有多个缓存操作而这些缓存操作可能是重复的。这个时候可以使用CacheConfig CacheConfig(books) public class BookRepositoryImpl implements BookRepository {Cacheablepublic Book findBook(ISBN isbn) {...} } CacheConfig是一个类级别的注解允许共享缓存的名称、KeyGenerator、CacheManager 和CacheResolver。  该操作会被覆盖。 开启缓存注解 java类配置 Configuration EnableCaching public class AppConfig { } XML 配置 beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:cachehttp://www.springframework.org/schema/cachexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsdcache:annotation-driven //beans
http://www.zqtcl.cn/news/982860/

相关文章:

  • asp网站乱码广州制作网页设计
  • 调用别人网站的数据库如何开网店卖自己的东西
  • 个人网站做影视网站开发学什么专业
  • 企业名称注册查询官网入口免费seo网站推广
  • 浙江门户网站建设公司个体工商户查询
  • 做网站的注意点赛事竞猜网站开发
  • 现在流行用什么语言做网站ppt设计教程网
  • 高端网站哪种好培训机构不退钱最怕什么举报
  • 青岛个人建站模板wordpress没有链接
  • 网上学习网站有哪些厦门城乡建设局网站
  • 怎样创建网站快捷方式个人制作一个网站的费用
  • 恒信在线做彩票的是什么样的网站软件开发流程管理
  • 网站服务器地址在哪里看艺术学校网站模板
  • 郑州中心站网站建设价格标准新闻
  • 电子商务网站管理互联网营销师主要做什么
  • 门户网站指的是什么凯里网络公司建设网站
  • 网站接入服务商查询0建设营销型网站步骤
  • 长沙如何做百度的网站小型网站建设实训教程
  • 昆明网络公司网站网站建设经费请示
  • 手机端网站欣赏wordpress 文章rss
  • 做网站一定要实名认证吗国外免费空间网站申请
  • 阿里云网站空间主机长春网站建设设计
  • 龙华网站建设yihekj长沙招聘网站制作
  • 网站怎么做文本跳出来网络规划设计师有用吗
  • 室内设计网站官网大全中国那些企业做网站做得好
  • 状态管理名词解释网站开发网络营销推广方案案例
  • 做网站需要几大模板河南中国建设信息网
  • 成都温江网站建设空间网页版
  • 做美股的数据网站邢台网站建设公司哪家好一点
  • 青岛即墨网站开发查询建设用地规划许可证在哪个网站