网站织梦宜宾 网站建设

web/2025/10/8 20:04:58/文章来源:
网站织梦,宜宾 网站建设,建数据库的网站多少钱,登陆网站怎么做web应用插件开发我们需要制作多个具有很多共享功能的基于Web的项目。 为此#xff0c;某种插件系统将是一个不错的选择#xff08;作为粘贴粘贴内容的替代方法#xff09;。 有些框架#xff08;例如grails#xff09;可以选择制作Web插件#xff0c;但大多数没有#x… web应用插件开发 我们需要制作多个具有很多共享功能的基于Web的项目。 为此某种插件系统将是一个不错的选择作为粘贴粘贴内容的替代方法。 有些框架例如grails可以选择制作Web插件但大多数没有因此需要实现定制的东西。 首先让我们定义所需的功能。 “插件” 应该通过通过maven / ivy导入简单地包括在内 如果使用了一个类则应在依赖项注入容器中注册所有类自动或通过单行配置 应该是垂直的–即包含所有文件从javascriptcss和模板到控制器再到服务层类 不需要需要在项目之间复制粘贴的复杂配置 应该允许容易的开发和调试而无需重新部署 将Java类放入jar文件中然后添加到lib目录中因此也添加到了类路径中这是简单的部分。 但是我们需要将Web资源提取到各个位置其余的代码可以在这些位置使用它们。 可以使用三种通用方法构建时提取运行时提取和从类路径加载运行时。 最后一种方法将需要一个控制器或servlet该控制器从类路径相应的jar中加载资源对其进行缓存并提供服务。 这有两个明显的缺点其中之一就是放在罐子里在开发过程中不容易更换它们。 使用类路径资源也很棘手因为您事先不知道文件名。 其他两种方法非常相似。 例如Grails使用构建时提取–插件是一个zip文件其中包含所有必需的资源并且在构建项目时将它们提取到各自的位置。 很好但是需要更多的配置在我们的例子中是Maven可能还需要在项目之间复制。 因此我们选择了运行时提取方法。 它在启动时发生–加载应用程序时某种启动侦听器在我们的示例中为带有PostConstruct的spring组件会遍历lib文件夹中的所有jar文件并从特定文件夹中提取文件例如“ web ”。 因此jar文件的结构如下所示 comcompanypkgFoo.classBar.class webplugin-namecssmain.cssjsfoo.jsbar.jsimageslogo.pngviewsfoo.jspbar.jsp 最终结果是在启动应用程序后您可以从应用程序访问所有必需的Web资源因此可以将它们包含在主应用程序的页面视图中。 而且提取的代码非常简单将zip4j用于zip部分。 这可以是servlet上下文侦听器而不是spring bean –没什么区别。 /*** Component that locates modules (in the form of jar files) and extracts their web elements, if any, on startup** author Bozhidar*/ Component public class ModuleExtractor {private static final Logger logger LoggerFactory.getLogger(ModuleExtractor.class);Injectprivate ServletContext ctx;SuppressWarnings(unchecked)PostConstructpublic void init() {File lib new File(ctx.getRealPath(/WEB-INF/lib));File[] jars lib.listFiles();String targetPath ctx.getRealPath(/);String viewPath /WEB-INF/views; //that can be made configurablefor (File jar : jars) {try {ZipFile file new ZipFile(jar);for (FileHeader header : (ListFileHeader) file.getFileHeaders()) {if (header.getFileName().startsWith(web/) !fileExists(header)) {// extract views in WEB-INF (inaccessible to the outside world)// all other files are extracted in the root of the applicationif (header.getFileName().contains(/views/)) {file.extractFile(header, targetPath viewPath);} else {file.extractFile(header, targetPath);}}}} catch (ZipException ex) {logger.warn(Error opening jar file and looking for a web-module in: jar, ex);}}}private boolean fileExists(FileHeader header) {return new File(ctx.getRealPath(header.getFileName())).exists();} } 因此为了制作插件您只需制作一个带有jar包装的Maven项目并将其作为依赖项添加到您的主项目中其他所有工作都将得到处理。 如果未启用对bean的类路径扫描或选择使其成为侦听器则可能需要注册ModuleExtractor 。 注意此解决方案并非旨在成为能够解决所有问题的功能齐全的插件系统。 它不支持版本控制子模块等。这就是标题为何“简单”的原因。 但是您可以用它做很多事情而且它的复杂性非常低。 参考 Bozho的技术博客博客中的JCG合作伙伴 Bozhidar Bozhanov的 Web应用程序简单插件系统 。 翻译自: https://www.javacodegeeks.com/2013/08/a-simple-plugin-system-for-web-applications.htmlweb应用插件开发

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89237.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

保定附近的做网站价格英文定机票网站建设

JAVAC 命令详解 结构 javac [ options ] [ sourcefiles ] [ files ]参数可按任意次序排列。 options 命令行选项。 sourcefiles 一个或多个要编译的源文件(例如 MyClass.java)。 files 一个或多个对源文件进行列表的文件。 说明 javac 有两种方法可将源…

win7 iis网站无法显示该页面100种迷你小手工

文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充&…

盐城营销型网站郑州网站建设最好

1. 概述 Qt 是一个跨平台的图形应用开发框架,被应用在不同尺寸设备和平台上,同时提供不同版权版本供用户选择。米尔 NXP i.MX 93 开发板(MYD-LMX9X开发板)使用 Qt6.5 版本进行应用开发。在 Qt 应用开发中,推荐使用 Qt…

有关网站建设的论文大专网站建设资料

文章目录 一、简介二、实现代码三、实现效果一、简介 OpenMesh中的赋色方式与Easy3D很是类似,它统一有一个属性数组来进行管理,我们在进行赋色等操作时,必须要首先添加该属性才能进行使用,这里也进行记录一下(法向量等特征也是类似的操作)。 二、实现代码 #define _USE_…

旅游网站开发文献综述网站建设需要花多少钱

模板方法模式是一种行为模式,建议在超类中更一般地定义算法。 该算法是在称为模板方法的方法中定义的。 子类仅定义更具体的算法步骤的实现。 使用这种设计模式的好处是,算法后面的任何更改只会影响超类中的代码。 此外,它还可以提高代码的可…

四川住房和城乡建设厅官方网站一个公司网站开发多少钱

1、打开MySQL目录下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件。(Win10默认安装,my.ini在C:\ProgramData\MySQL\MySQL Server 5.7) 2、重启MySQL57和MySQL Router服务。 3、通过命令行窗…

电影网站网页设计深圳物流托运上门取件

1,检查是否有mysql残留文件查找出安装的mysql软件包和依赖包rpm -pa | grep mysql依次删除yum remove mysql-xxx-xxx-查找出所用的配置文件find / -name mysql依次删除rm -rf /var/lib/mysql2,删除MariaDB的文件,装MySQL的话会和MariaDB的文件…

自己做网站挂广告西安企业建站机构那里有

Endpoint Routing 路由系统ASP.NET Core 3.x 使用了一套叫做 Endpoint Routing 的路由系统。这套路由系统在ASP.NET Core 2.2 的时候就开始露面了。这套Endpoint Routing路由系统提供了更强大的功能和灵活性,以便能更好的处理请求。早期ASP.NET Core的路由系统我们先…

上海怎样建设网站wordpress删除管理站点链接

GaN HEMT器件的大信号等效电路模型分为经验基模型和物理基模型。经验基模型具有较高精度但参数提取困难,特别在GaN HEMT器件工艺不稳定的情况下不易应用。相比之下,物理基模型从器件工作机理出发,参数提取相对方便,且更容易更新和…

Dedecms手机网站源码phpcms 手机网站后台

目录 1、介绍下Zookeeper是什么? 2、Zookeeper有什么作用?优缺点?有什么应用场景? 3、Zookeeper的选举策略,leader和follower的区别? 4、介绍下Zookeeper选举算法 5、Zookeeper的节点类型有哪些?分别作用是什么? 6、Zookeeper的节点数怎么设置比较好? …

网站建设见站分析和准备论文个人网站可以做经营性的吗

现在视频文件的体积越来越大了,动不动就是几个GB起步,如果后期再剪辑处理一下,更是会占据更多的设备空间了,还会导致我们传输受到限制,这时候就需要我们对视频进行压缩处理,下面给大家分享几个简单的方法&a…

psdw做网站广州有几个区分别叫什么

南京装修交流圈 - 知乎​www.zhihu.com现在大部分人购买的房子面积还是普遍偏小的,每行每业都有自己的服装讲究,不同的场地、见不同的人等等。家中能有一个衣帽间自然也就是心中所向往和追求的。能够有独立的一个房间来做衣帽间当然更好,今天…

网站源码整站打包wordpress更改固定链接

01. QJsonArray类简介 ​ QJsonArray封装了JSON数组。 ​ JSON数组是值的链表,可以插入和删除QJsonValue。 ​ QJsonArray与QVariantList可以相互转换。QJsonArray可以用size(), insert(), removeAt()进行操作,还可以用标准C的迭代器模式来迭代其内容…

郑州微信网站制作淘宝客做网站怎样推广

适用场景:整数,无重复;Bitset 基础Bitset,也就是位图,由于可以用非常紧凑的格式来表示给定范围的连续数据而经常出现在各种算法设计中。上面的图来自c库中bitset的一张图。基本原理是,用1位来表示一个数据是…

开发网站做什么百度推广去哪里学技术

🍎个人博客:个人主页 🏆个人专栏:Linux ⛳️ 功不唐捐,玉汝于成 前言 在多用户环境下管理磁盘空间是服务器管理中的一项重要任务。Linux提供了强大的磁盘配额功能,可以帮助管理员限制用户或组对文件系统…

淘客优惠券网站建设室内设计效果图说明

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: 使用UF_VIEW_ask_visible_objects获取2D制图视图中可见的对象,并获取类型。 下面是将一个六面体以不同的视图投影,获取视图对象和类型的效果。 效果: 1个部件事例,1个体,4条边 1个部件事…

无锡商业网站建设wordpress的文件结构

对于缺乏编程知识的人来说,完全有可能编写一个网页或小程序。如果在用Google搜索相关示例时幸运的话,可以搜到现成的代码。即使是经验丰富的程序员,通常也会为了节省时间和精力而在网上搜索解决方案。 如果不借助搜索技术、网络及集体智慧&am…

wordpress扒站教程深圳百度关键词推广

7-1 打印沙漏 (20 分) 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2&#xff1…

打开网站代码启迪网站建设招聘

Dubbo 服务发现 1、什么是服务发现 **服务发现(Service discovery)**是自动检测一个计算机网络内的设备及其提供的服务。 2、Dubbo 与 服务发现 Dubbo 提供的是一种 Client-Based 的服务发现机制,依赖第三方注册中心组件来协调服务发现过…

开鲁网站seo站长工具优设网文案

服务器mysql显示链接次数太多 内容精选换一换在本章节中,您将会把游戏应用部署到CCE云容器引擎中,您需要执行以下操作:创建集群:集群是运行应用的逻辑分组,包含一组云服务器资源,每个节点对应一台云服务器。…