慈溪网站制作哪家最好品牌建设调研

张小明 2026/1/3 2:09:04
慈溪网站制作哪家最好,品牌建设调研,网站建设就业培训,wordpress 添加js一、前言因为之前在项目中使用了Groovy对业务能力进行一些扩展#xff0c;效果比较好#xff0c;所以简单记录分享一下#xff0c;这里你可以了解#xff1a;为什么选用Groovy作为脚本引擎了解Groovy的基本原理和Java如何集成Groovy在项目中使用脚本引擎时做的安全和性能优…一、前言因为之前在项目中使用了Groovy对业务能力进行一些扩展效果比较好所以简单记录分享一下这里你可以了解为什么选用Groovy作为脚本引擎了解Groovy的基本原理和Java如何集成Groovy在项目中使用脚本引擎时做的安全和性能优化实际使用的一些建议二、为什么使用脚本语言2.1 脚本语言可解决的问题互联网时代随着业务的飞速发展不仅产品迭代、更新的速度越来越快个性化需求也是越来越多如多维度条件的查询、业务流转规则等。办法通常有如下几个方面最常见的方式是用代码枚举所有情况即所有查询维度、所有可能的规则组合根据运行时参数遍历查找;使用开源方案例如drools规则引擎此类引擎适用于业务基于规则流转且比较复杂的系统;使用动态脚本引擎例如GroovyJSR223。注JSR即 Java规范请求是指向JCPJava Community Process提出新增一个标准化技术规范的正式请求。任何人都可以提交JST以向Java平台增添新的API和服务。JSR是Java界的一个重要标准。JSR223提供了一种从Java内部执行脚本编写语言的方便、标准的方式并提供从脚本内部访问Java资源和类的功能即为各脚本引擎提供了统一的接口、统一的访问模式。JSR223不仅内置支持Groovy、Javascript、Aviator而且提供SPI扩展笔者曾通过SPI扩展实现过Java脚本引擎将Java代码“脚本化”运行。引入动态脚本引擎对业务进行抽象可以满足定制化需求大大提升项目效率。例如笔者现在开发的内容平台系统中下游的内容需求方根据不同的策略会要求内容平台圈选指定内容推送到指定的处理系统这些处理系统处理完后内容平台接收到处理结果再根据分发策略规则下发给推荐系统。每次圈选内容都要写一堆对于此次圈选的查询逻辑内容下发的策略也经常需要变更。所以想利用脚本引擎的动态解析执行使用规则脚本将查询条件以及下发策略抽象出来提升效率。2.2 技术选型对于脚本语言来说最常见的就是GroovyJSR233也内置了Groovy。对于不同的脚本语言选型时需要考虑性能、稳定性、灵活性综合考虑后选择Groovy有如下几点原因学习曲线平缓有丰富的语法糖对于Java开发者非常友好技术成熟功能强大易于使用维护性能稳定被业界看好和Java兼容性强可以无缝衔接Java代码可以调用Java所有的库。2.3 业务改造因为运营、产品同学对于内容的需求在不断的调整内容平台圈选内容的能力需要能够支持各种查询维度的组合。内容平台起初开发了一个查询组合为状态入库时间来源方内容类型并定向分发到内容理解和打标的接口。但是这个接口已经不能满足需求的变化为此最容易想到的设计就是枚举所有表字段如发布时间、作者名称等近20个使其成为查询条件。但是这种设计的开发逻辑其实是很繁琐的也容易造成慢查询比如筛选指定合作方和等级S的up主且对没有内容理解记录的视频调用内容理解接口即对这部分视频进行内容理解。为了满足需求需要重新开发结果就是write once, run only once造成开发和发版资源的浪费。不管是JDBC for Mysql还是JDBC for MongoDB都是面向接口编程即查询条件是被封装成接口的。基于面向接口的编程模式查询条件Query接口的实现可以由脚本引擎动态生成这样就可以满足任何查询场景。执行流程如下图3.1。下面给出脚本的代码Demo/*** 构建查询对象Query* 分页查询mongodb*/public Query query(int page){String source Groovy;String articleType 4; // (source,articleType) 组成联合索引提高查询效率Query query Query.query(where(source).is(source)); // 查询条件1sourceGroovyquery.addCriteria(where(articleType).is(articleType)); // 查询条件2articleType4Pageable pageable new PageRequest(page, PAGESIZE);query.with(pageable);// 设置分页query.fields().include(authorId); // 查询结果返回authorId字段query.fields().include(level); // 查询结果返回level字段return query;}复制代码一键获取完整项目代码/*** 过滤每一页查询结果*/public boolean filter(UpAuthor upAuthor){return !S.equals(upAuthor.getLevel(); // 过滤掉 level ! S 的作者}复制代码一键获取完整项目代码/*** 对查询结果集逐条处理*/public void handle(UpAuthor upAuthor) {UpAthorService upAuthorService SpringUtil.getBean(upAuthorService); // 从Spring容器中获取执行java beanif(upAuthorService null){throw new RuntimeException(upAuthorService is null);}AnalysePlatService analysePlatService SpringUtil.getBean(analysePlatService); // 从Spring容器中获取执行java beanif(analysePlatService null){throw new RuntimeException(analysePlatService is null);}ListArticle articleList upAuthorService.getArticles(upAuthor);// 获取作者名下所有视频if(CollectionUtils.isEmpty(articleList)){return;}articleList.forEach(article-{if(article.getAnalysis() null){analysePlatService.analyse(article.getArticleId()); // 提交视频给内容理解处理}})}复制代码一键获取完整项目代码理论上可以指定任意查询条件编写任意业务逻辑从而对于流程、规则经常变化的业务来说摆脱了开发和发版的时空束缚从而能够及时响应各方的业务变更需求。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

婚纱影楼网站旅游景区网络营销案例

还在为复杂的流体速度测量发愁吗?🤔 PIVlab粒子图像测速工具让这一切变得轻松简单!作为基于MATLAB的开源分析软件,PIVlab专为流体力学实验设计,无论是教学演示还是科研分析,都能提供专业而友好的用户体验。…

张小明 2026/1/1 16:04:04 网站建设

二手车网站怎么做的网站建设过程中的通用原则

多场景文字识别新标杆:GOT-OCR-2.0-hf开源模型完全指南 【免费下载链接】GOT-OCR-2.0-hf 阶跃星辰StepFun推出的GOT-OCR-2.0-hf是一款强大的多语言OCR开源模型,支持从普通文档到复杂场景的文字识别。它能精准处理表格、图表、数学公式、几何图形甚至乐谱…

张小明 2026/1/3 1:10:22 网站建设

深圳建设银行宝安支行网站花钱做网站

OSS底层原理是什么阿里云OSS(对象存储服务)的底层原理主要基于分布式存储系统,核心是阿里云自研的盘古(Pangu)分布式文件系统(也称飞天存储平台)。OSS 是构建在盘古之上的对象存储层&#xff0c…

张小明 2026/1/1 12:38:22 网站建设

新加坡域名注册网站苏州整站优化

第一章:Open-AutoGLM 任务中断恢复机制概述Open-AutoGLM 是一个面向自动化大语言模型任务调度与执行的开源框架,其核心设计之一是具备高容错性的任务中断恢复机制。该机制确保在训练、推理或数据处理任务因系统崩溃、网络中断或资源抢占而意外终止时&…

张小明 2026/1/2 5:51:27 网站建设

淄博市临淄区建设局网站把网站放到服务器

XML 语法详解 引言 XML(可扩展标记语言)是一种用于存储和传输数据的标记语言。它广泛应用于网络数据的传输、数据存储和配置文件等领域。本文将详细介绍XML的语法规则,帮助读者更好地理解和应用XML。 XML基本概念 1. XML文档结构 一个XML文档通常由以下几部分组成: 声…

张小明 2026/1/2 5:51:37 网站建设

常州网站建设制作用dw做的网站怎么发到网上

在Python编程中,类定义是组织数据与封装逻辑的核心范式。然而,当需要创建仅用于数据存储的简单类时,开发者往往需编写大量重复机械的样板代码。例如用于属性初始化的__init__方法、支持对象信息友好展示的__repr__方法、实现对象相等性比较的…

张小明 2026/1/2 20:02:45 网站建设