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

网站建设合同的验收表青浦区网站建设

网站建设合同的验收表,青浦区网站建设,宗亲网站开发6,国外大气网站设计PF4J:Plugin Framework for Java 目录 是什么#xff1f; 不是什么#xff1f; 特点 组件 主要类 流程概述 spring-pf4j 思考 功能模块化 我对pf4j的封装和使用demo GitHub - chlInGithub/pf4jDemo: pf4j demo 是什么#xff1f; 开源轻量级的插件框架。通过插件…PF4J:Plugin Framework for Java 目录 是什么 不是什么 特点 组件 主要类 流程概述 spring-pf4j 思考 功能模块化 我对pf4j的封装和使用demo GitHub - chlInGithub/pf4jDemo: pf4j demo  是什么 开源轻量级的插件框架。通过插件形式对系统功能进行个性化扩展。插件需要实现扩展点扩展点由系统进行定义。 不是什么 功能模块化加载框架。虽然介绍中描述pf4j可以将庞大的系统转化为模块系统但依据我的实践来看仅仅依赖pf4j只能动态加载扩展无法动态加载完整的功能模块。 特点 开源轻量级的插件框架简单的标记扩展点使用interface ExtensionPoint即可将接口和抽象类定义为扩展点简单的标记扩展使用Extension即可定义一个扩展 组件 插件  等同于 由 扩展点、扩展、生命周期行为 构成的一个集合。  Plugin所有插件的基类。每一个插件均由单独的classloader进行加载避免冲突。PluginManager对插件进行切面化管理如loading, starting, stopping。已提供3中实现JarPluginManager, ZipPluginManager, DefaultPluginManager(jar_zip)。也可自行实现个性化pluginManager需要实现AbstractPluginManager。PluginLoader加载插件需要的所有信息如classExtensionPoint扩展点Extension扩展即扩展点的实现 主要类  PluginManagerpf4j通过PluginManager向外提供plugin管理能力如生命周期控制、获取扩展实例PluginWrapperplugin的包装类ManifestPluginDescriptorFinder从(支持jar\zip\目录)manifest文件读取插件信息如Plugin-Id(用于避免重复load)、Plugin-Version、Plugin-ClassPluginLoader 用于load plugin需要的所有信息每个pluginPath对应一个pluginLoader为每个plugin提供独立的classloader。 如JarPluginLoader PluginClassLoader自定义的classLoader修改了loadClass的逻辑。每个plugin对应一个PluginClassLoader实例PluginState插件生命周期期间的各种状态DependencyResolver插件间依赖关系分解器。一系列插件之间构建依赖图唯一入口resolve可以返回依赖分解结果如插件之间是否存在循环依赖、能否找到依赖的插件、插件依赖版本是否正确等。LegacyExtensionFinder读取plugin包中META-INF/extensions.idx文件获取扩展信息和实例。 生命周期概述 加载插件过程MF文件中插件描述--插件独立classLoader--插件间依赖解析--插件已解析状态开始插件过程加载Plugin实现并生成实例--调用Plugin.start()--插件已开始状态获取某个扩展点实现类的实例停止插件插件状态变为停止卸载插件从集合中清除关闭classLoader spring-pf4j 将扩展注册为spring ioc bean 思考 如何支持租户场景 pf4j非线程安全允许不同租户维护各自插件的场景需要在pf4j基础上再包裹一层一方面增加线程安全一方面维护租户与插件、扩展的关系。 需要以一种路径规范存放插件jar如下图 如何支持插件依赖的jar 方式1系统列举出支持的jar集合插件依赖其中的jar。在demo中已体现该场景插件正常运行。 如图为插件的pom依赖插件jar中不包含依赖的任何jars。 插件jar放到上图的租户路径下在系统中运行Pf4jTest.main插件扩展运行正常。因为系统的classpath中包含common-lang jar所以classloader可以找到common-lang中class。 扩展运行结果如下可以清晰看出两个插件的classloader是独立的。 方式2插件jar内部包含依赖的jars 方式2.1jdk的classloader不支持嵌套jar需参考spring LaunchedURLClassLoader或JarClassLoader(http://www.jdotsoft.com/JarClassLoader.php)。在不改变pf4j源码情况下无法实现该方案因为pf4j使用URLClassLoader。方式2.2解压插件jar--pf4j加载插件jar--修改生成的classloader的扫描范围添加依赖jars路径--启动插件jar方式3系统根据插件jar的(maven)依赖去下载依赖的jar 功能模块化 基本能力系统功能进行模块划分模块可动态加载和卸载模块独立且隔离模块间资源不产生冲突。 设计思路独立的classloader(修改加载class的顺序,自有范围--双亲委派)、springcontext、生命周期管理
http://www.tj-hxxt.cn/news/218429.html

相关文章:

  • 重庆建设厂招工信息网站商城网站都有什么功能
  • 微网站工程案例展示一家公司做网站需要什么资料
  • 云南建设厅网站安全处网站集约化后如何建设
  • 家具网站php源码小网站推荐一个
  • 网站怎么做第三方支付接口简易微网站模板
  • 怎么管理网站的内容吗wordpress 亲子模板下载
  • 南山网站建设深圳信科威海自适应网站建设
  • 深圳建站公司哪个济南兴田德润简介苏州口碑好的保洁公司
  • 在线教育网站源码深圳网站建设维护服务
  • 电子商务网站模板 html电商代运营十大公司排名
  • 引领网站做网站多久才会有收益
  • 网站模板免费下载网页模板佳木斯 网站建设
  • 威海网站建设是什么网件路由器做网站
  • 如何用ps做网站标识wordpress 菜单 icon
  • 做影视网站需要境外80h tv wordpress主题
  • 织梦网站建设后优化步骤网站更换ico文件位置
  • 英国有哪些做折扣的网站20元备案域名
  • linux wordpress建站教程专门做汽车内饰的网站
  • 电子商务的门户网站做网站是什么职业
  • 衡阳网站页面设计公司溧阳市住房和城乡建设局网站
  • php如何做网站企业网站 备案
  • 青岛英文网站建设服务公司网站优化流程
  • 天水地区建网站小公司简介模板
  • 选择seo网站排名优化网站开发项目需求书
  • 虚拟交易网站开发wap网站建设兴田德润实惠
  • 网站项目管理系统网站建设源代码文件
  • 商贸有限公司起名seo站内站怎么做
  • 好的数据库网站wordpress 粘贴
  • wordpress手机版使用福州seo推广
  • 有关于网站建设类似的文章网站内部资源推广的基本方法