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

多语言版本网站制作学校精品课网站怎么做

多语言版本网站制作,学校精品课网站怎么做,网站建设报价分析,html网页课程设计报告spring默认缓存管理器在这篇文章中#xff0c;我想向大家展示如何使用Spring的CacheManager#xff0c; Cacheable和JMX批注来缓存和管理Web内容的缓存的基础知识。 想象一下一个网上商店#xff0c;它从远程WCMS#xff08;Web内容管理系统#xff09;获取一些内容#… spring默认缓存管理器 在这篇文章中我想向大家展示如何使用Spring的CacheManager Cacheable和JMX批注来缓存和管理Web内容的缓存的基础知识。 想象一下一个网上商店它从远程WCMSWeb内容管理系统获取一些内容例如页眉页脚预告片主导航。 提取可以例如经由REST服务发生。 一些内容很少更新因此出于性能原因将其缓存在Web应用程序中是有意义的。 入门 首先我们需要一个缓存提供程序。 一个好的缓存提供程序将是EhCache 。 您需要将EhCache 作为依赖项添加到您的项目中。 您还需要配置ehcache.xml该文件除其他事项外还描述缓存名称缓存内容的存储位置和存储时间。 请参考文档以了解ehcache.xml的外观。 EhCache的中心类是net.sf.ehcache.CacheManager。 借助此类您可以以编程方式向缓存中添加对象或从缓存中删除任何对象。 可以将对象缓存在内存中磁盘上或其他位置。 Spring框架提供了一个由EhCache支持的CacheManager – org.springframework.cache.CacheManager。 它还提供了Cacheable批注。 在文档中 “顾名思义 Cacheable用来划分可缓存的方法-即将结果存储在缓存中的方法以便后续调用具有相同参数时使用缓存中的值返回而不必实际执行该方法。 在最简单的形式中注释声明要求与被注释方法关联的缓存名称。 我们还将使用JMX注释。 这些是Spring的注释ManagedResource和ManagedOperation。 我们为什么需要那些 我们需要它们能够通过JMX控制台清除缓存。 为什么 好吧例如基础数据已更改但缓存尚未过期。 过时的数据仍将从缓存中读取而不是从本机源中读取。 用ManagedResource注释的Bean将作为JMX Bean公开通过ManagedOperation注释的方法可以通过JMX控制台执行。 我建议使用JMiniX作为简单的JMX入口点。 只需声明一个servlet即可将JMiniX嵌入到webapp中。 还支持参数化方法因此您甚至可以为方法的参数输入一些实际值并使用这些值触发执行。 怎么做… 现在我们准备开发第一个代码。 我们需要与远程后端进行通信的服务以便从WCMS中获取各种内容。 让我们用一种方法fetchMainNavigation展示示例性的基本代码。 此方法获取主导航菜单的结构并将该结构转换为DTO对象NavigationContainerDTO菜单的模型类。 整个业务和技术逻辑都驻留在bean MainNavigationHandler中。 此逻辑对于此博客文章并不重要。 方法fetchMainNavigation需要两个参数语言环境例如英语或德语和变量例如B2C或B2B shop。 Component public class WCMSServiceImpl extends BaseService implements WCMSService {// injection of Springs CacheManager is needed for CacheableAutowiredprivate CacheManager cacheManager;Autowiredprivate MainNavigationHandler mainNavigationHandler;...OverrideCacheable(value wcms-mainnavigation,key T(somepackage.wcms.WCMSBaseHandler).cacheKey(#root.methodName, #root.args[0], #root.args[1]))public NavigationContainerDTO fetchMainNavigation(Locale lang, String variant) {Object[] params new Object[0];if (lang ! null) {params ArrayUtils.add(params, lang);}if (variant ! null) {params ArrayUtils.add(params, variant);}return mainNavigationHandler.get(fetchMainNavigation, params);} } 该方法使用Spring的Cacheable注释进行注释。 这意味着如果返回的对象NavigationContainerDTO在缓存中尚不可用则将对其进行缓存。 下次提取将从缓存中返回对象直到缓存过期。 根据ehcache.xml中的设置进行缓存。 Spring的CacheManager在类路径中自动找到EhCache提供程序。 Cacheable中的value属性指向缓存名称。 key属性指向可以访问对象的缓存中的键。 由于缓存本质上是键值存储因此对缓存方法的每次调用都需要转换为适合缓存访问的键。 在简单的情况下键可以是任何静态字符串。 在该示例中我们需要一个动态键因为该方法具有两个参数语言环境和变量。 幸运的是Spring支持带有SpEL表达式Spring EL表达式的动态键。 有关更多详细信息请参见表“ Cache SpEL可用的元数据 ”。 您可以调用任何生成密钥的静态方法。 我们的表达式Tsomepackage.wcms.WCMSBaseHandler.cacheKeyroot.methodNameroot.args [0]root.args [1]表示我们使用以下三个参数在类WCMSBaseHandler中调用静态方法cacheKey方法名称第一个和第二个参数分别是语言环境和变量。 这是我们的密钥生成器。 public static String cacheKey(String method, Object... params) {StringBuilder sb new StringBuilder();sb.append(method);if (params ! null params.length 0) {for (Object param : params) {if (param ! null) {sb.append(-);sb.append(param.toString());}}}return sb.toString(); } 让我们展示处理程序类MainNavigationHandler的外观。 这只是来自实际项目的简化示例。 Component ManagedResource(objectName bean:nameWCMS-MainNavigation,description Manages WCMS-Cache for the Main-Navigation) public class MainNavigationHandler extends WCMSBaseHandlerNavigationContainerDTO, Navigation {OverrideNavigationContainerDTO retrieve(Objects... params) {// the logic for content retrieving and DTOs mapping is placed here...}ManagedOperation(description Delete WCMS-Cache)public void clearCache() {Cache cache cacheManager.getCache(wcms-mainnavigation);if (cache ! null) {cache.clear();}} } 由于在WCMSBaseHandler中进行了以下注入因此CacheManager在这里也可用。 Autowired private CacheManager cacheManager; ManagedResource是Spring的JMX批注以便将bean作为JMX MBean导出并在JMX控制台中可见。 导出的方法应使用ManagedOperation注释。 这是方法clearCache它从缓存中删除主导航的所有内容。 “所有内容”是指NavigationContainerDTO类型的对象。 现在可以将开发的WCMS服务注入前端的Bean中。 我已经在博客上写过如何用纯HTML构建多级菜单并显示了代码。 这正是该服务的主要导航。 还有更多… 应该在Spring的XML配置文件中配置JMX注释的扫描。 bean idexporter classorg.springframework.jmx.export.MBeanExporterproperty nameserver refmbeanServer/property nameassembler refassembler/property namenamingStrategy refnamingStrategy/property nameautodetect valuetrue/ /bean 可在https/// mct / webshop / admin / jmx /下访问JMiniX的JMX控制台。单击clearCache方法的execute按钮将触发缓存清除。 翻译自: https://www.javacodegeeks.com/2015/04/caching-of-web-content-with-springs-cache-manager.htmlspring默认缓存管理器
http://www.pierceye.com/news/315138/

相关文章:

  • 网站维护需要关闭网站么找哪些公司做网站
  • 阿里巴巴做轮播网站如何建设学校的微网站首页
  • 国内设计好的网站案例网店设计风格怎么写
  • 网站建设长沙创建网页需要多少钱
  • 南通电商网站建设网站背景怎么设置
  • 无锡网站托管aspnet通讯录网站开发
  • 卫计网站建设工作总结铜陵建设行业培训学校网站
  • 手机网站竞价网页界面设计遵循的原则
  • 徐州seo推广公司广州营销型网站优化
  • 小说网站首页模板安徽华力建设集团网站
  • 减肥网站如何做公司企业模板
  • 郑州网站建设搜q.479185700怎么在百度上推广自己的公司信息
  • 深圳住建设局官方网站大连在哪个省市
  • 吉林企业建站系统费用wordpress幻灯片加载很慢
  • com域名和网站小型企业网站排名前十
  • 网站内容 优化泉州网站开发公司
  • 假发外贸网站模板做图库网站需要多少钱
  • 网站建设公司 知道万维科技wordpress支持移动
  • 经典网站建设邢台网站建设策划
  • 系统数据库与建设网站网站提交入口大全
  • 网站做数据分析的意义西安网站建设kxccc
  • 免费建个人网站alexa排名搜索
  • 做的网站第二年续费多钱店铺装修模板
  • 这么自己建设网站中卫网站设计厂家
  • 公司网站制作哪家公司好广州建设执业资格注册中心网站
  • 北京所有做招聘类网站建站公司Apache Wordpress伪静态处理
  • 大兴做网站公司制作网页可以用什么软件
  • 该怎么给做网站的提页面需求网上购物平台怎么建立
  • 用pw后缀的网站阳江网络问政平台首页
  • 建站网站建设哪个好网页设计个人总结