大数据最全深入xJavaFxTool的插件开发模式_xjavafxtool 源码分析,农民工看完都会了

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

xcore
xcore核心jar包
https://gitee.com/xwintop/xcore

2、xcore本地编译

由于很多插件,都会依赖xcore,因此有必要对xcore进行本地编译,同时xcore在公开的maven仓库中是没有的。因此如果想进行插件的调试和开发,则必须将xcore安装到本地的私有maven仓库中,在前面的步骤中,只要保证配置没有报错,就可以对xcore进行编译安装,这里使用的命令是:mvn install

如果能看到以上的窗口说明xcore编译安装成功,在本地maven仓库中可以看到编译好的jar,如下图所示:

二、插件扩展简介

一个好的产品,离不开成熟的生态,可以兼容种类丰富的外部插件。同时,很方便的帮助开发者,基于一些公共的api来开发扩展基础应用,也是一项非常加分的能力。xJavaFxTool就是这么一款对开发者友好的开发框架。而xJavaFxTool的扩展能力,第一大语言优势就是,基于java开发语言,java语言的动态反射机制,有了反射机制,让动态调用得以实现,并在这里发光发热,项目的高效扩展集成得到了实现。

1、插件开发的一些坑

在作者的开源列表中,其实也开放了一些基础的应用插件,这些插件都是可以直接使用的,给大家提供了一种开发的案例。大家可以按照作者的例子进行改写,得到自己的插件。这里给大家列几个坑,在编译作者的开源插件中,有一些要注意的点,不至于大家在遇到问题时摸不着头脑。

这里举一个json转换插件的例子,x-JsonConvertTool。将代码从gitee上clone下来后,可以看到爆红的地方。这里的例子中xcore依赖是正常的,有一些工程,它引用的xcore的版本是老的版本,比如是0.0.3版本的,甚至是0.0.7版本的。所以,下载下来的包要主要xcore版本问题。

<dependencies>
   <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>4.12</version>
       <scope>test</scope>
   </dependency>
   <dependency>
       <groupId>com.xwintop</groupId>
       <artifactId>xcore</artifactId>
       <version>0.0.6</version>
       <scope>provided</scope>
   </dependency>

   <!--yaml解析工具-->
   <dependency>
       <groupId>org.yaml</groupId>
       <artifactId>snakeyaml</artifactId>
       <version>1.24</version>
 </dependency>

其次是IDE的jdk设置问题,有的时候IDE默认的jdk会被设置成默认的1.5,而我们的xcore编译的jdk是1.8,这样就容易导致运行有问题,所以需要将两者的JDK统一版本。

通常经过以上两步基本能解决80%的编译不通过的问题。如果还有其它的问题,可以在C站私信留言。

2、插件开发

为保证插件的代码也具有可读性,我们可以来看看开源的作者是怎么规划的。作者的包规划非常合理,符合mvc的开发设计理念。

包括入口函数、控制层、服务层、视图层。在资源目录包下面,有菜单配置xml、本地语言包配置文件。这些都是程序运行的基础,按照约定大于配置的设计理念,统一都按照这种方式进行归类整理,强烈建议各位小伙伴在自己开发的时候也同样按照这种目录进行组织自己的代码和实现。

3、菜单资源配置

作为独立的jar包,菜单的配置也是非常中,在xJavaFxTool插件开发中,菜单资源的配置采用一个xml配置文件来存储,在同一的展示前端,统一进行xml的解析和UI界面展示。

<?xml version="1.0" encoding="UTF-8"?>
<root>
	<ToolFxmlLoaderConfiguration title="developTools" menuId="p-developTools" menuParentId="moreToolsMenu" isMenu="true" />
	<ToolFxmlLoaderConfiguration>
		<url>/com/xwintop/xJavaFxTool/fxmlView/developTools/JsonConvertTool.fxml</url>
		<resourceBundleName>locale.JsonConvertTool</resourceBundleName>
		<className></className>
		<title>Title</title>
		<isDefaultShow></isDefaultShow>
		<menuId></menuId>
		<menuParentId>p-developTools</menuParentId>
		<controllerType>Node</controllerType>
	</ToolFxmlLoaderConfiguration>
</root>

这个xml配置文件对应的每个节点含义见如下的实体类定义:

package com.xwintop.xJavaFxTool.model;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class ToolFxmlLoaderConfiguration {
	private String url;//资源url
	private String resourceBundleName;//国际化资源文件
	private String className;//class名称
	private String title;//标题(配合国际化资源文件,无着默认显示原字符)
	private String iconPath;//图标路径
	private Boolean isDefaultShow = false;// 是否默认打开
	private String menuId;// 菜单id
	private String menuParentId;// 菜单父id
	private Boolean isMenu = false;//是否为菜单
	private String controllerType = "Node";// 内容类型
}

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 13
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值