同步操作将从 lrJAP/fxEAP 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
需要配置JDK以及JavaFX SDK,参见“配置及运行”章节。注意:本项目需要JDK 11.0.8、JavaFX SDK 17.0.2及以上配置。
用户名及密码 | 说明 |
---|---|
test01/123456 | 测试用户,英文环境 |
user02/123456 | 测试用户,中文环境 |
user01/123456 | 测试用户,繁体中文环境 |
基于fxEAP模式化开发的演示系统。
本项目中相关Markdown文件将不再更新,只更新代码,如果需要查看最新的文档,请访问www.lrJAP.com
fxEAP JavaFX开发手册,本文档描述fxEAP对JavaFX组件的扩展与增加。
fxEAP模式化开发,这是fxEAP中非常重要的一份文档,描述如何基于元数据结合格式化开发机制,实现功能的快速开发。
功能 | 描述 |
---|---|
枚举设计 | 基于ini文件生成自定义枚举信息,包括枚举类、json序列化/反序列化类、MyBatis Handler类,以及国际化资源信息。 |
参照设计 | 基于PowerDesigner或元数据,生成参照信息,包括前、后端相关代码及资源。 |
元数据设计 | 基于PowerDesigner,生成单一实体、树形结构的元数据信息,包括实体信息、实体属性信息、查询条件相关的前后端代码。 元数据是fxEAP中最基础的公共数据,是后续聚合对象设计、多对多对象设计、单据及功能菜单开发的基础。 |
聚合对象设计 | 基于元数据,设计并生成聚合对象的相关信息。支持一主一子、一主多子、多主、多主多子等复杂结构。并生成相应的前后端代码。 |
多对多对象设计 | 基于元数据,设计并生成多对多对象的相关信息。多对多结构中,最关键的是对照表。 |
资源国际化 | 对java源代码时的中文进行国际化处理。 |
单据定义 | 基于元数据(包括聚合、多对多),生成界面单据信息。 |
功能定义 | 基于单据定义,生成功能信息。 |
菜单定义 | 基于功能定义,生成菜单信息。一个功能可以生成多个菜单。 |
模块名称 | 说明 |
---|---|
eap-platform/eap-platform-base | 提供ValueObject、FX ValueObject、Reference参照系统、JavaFX扩展等 |
eap-platform/eap-platform-base-private | 提供BusinessObject体系等 |
eap-platform/eap-platform-javafx | 扩展并增强JavaFX界面组件 |
有感于一些软件公司由于平台化、模式化方面的欠缺,开发人员实现并维护一个简单的管理型界面,往往需要数天的时间。前后端代码动辄几百行甚至数千行,并由此导致效率、维护等方面一系列的问题。
对此,我们的愿景或基本要求是:以实现一个中等复杂程度的一主一子型(即一张主表、一张子表)的管理功能为例,在需求明确并完成需求反讲等控制环节,可以开始编码的基础上,一个熟手应该在2个工时内就能够完成数据库设计、生成业务逻辑处理、界面展现等相关的框架性代码,与业务处理无关的手工代码量应该尽量少,可运行并具备基本的增删改查功能。对于一个新手,经过1-2周的培训,也能够以较快的速度完成一般复杂程度的业务功能的开发。
fxEAP用于验证上述愿景的可行性。在基于平台+模式化开发体系的支撑下,开发人员应该把主要精力放在实现业务逻辑上。软件公司或是编码人员的本质工作是什么?我们认为是解决客户的问题,满足客户的需求。
这是我写这些文字和代码的初衷,也是fxEAP平台的主要源头。希望我的这些文字和代码,可以给面临项目交付压力的企业和开发人员一些有益的启迪和帮助。
fxEAP是一个基于Java、借鉴我们以往接触以及了解到的企业级应用开发思想及经验、整合第三方成熟的技术框架及工具,产生的企业级应用开发平台。编写该平台主要的技术目标,是尝试使企业应用的开发过程标准化、模式化,使开发人员把精力集中在实现业务逻辑上,减少代码量,降低开发以及维护的成本,达到以下基本目标:
以JavaFX为主要UI框架,采用命令行方式启动,基于Spring Http Invoker与服务端进行数据交互,自动从服务端下载相关代码及资源。
在业务逻辑层,支持基于BusinessObject(BO,业务处理对象)的模式化开发。远程调用方面,原先使用Spring Http Invoker,目前已经改为使用Dubbo。
根据我们的观察,一般情况下,开发人员可能比较关注应用端业务逻辑的实现,或者是关注UI端界面的展现及交互,对数据库层面投入的关注度反而不高。对此我们有一些不同的理解,套用《极限特工》中那句经典的台词,我们可以这样表述:**应用来了又去,而数据永存。**基于关系型数据库的企业应用系统,所有的业务功能、业务逻辑,都是对数据的处理及运用。我们认为,在企业级应用系统中,如果一定要说哪个组成部分最重要,那么一定是数据库——或者说是数据。对于金融行业客户那就尤为明显了,那些老牌的金融企业最宝贵的历史资产是什么?是那庞大的客户群历年生成的各种各样的数据。
业务功能产生数据可能只是一瞬间,但这些业务数据却需要在相当长的时间内进行存储和被运用。所以我们建议,要以提高数据使用的便捷性、高效性为第一目标,结合数据更新以及保存的要求,进行数据的物理结构设计。例如,数据将怎样被使用?需要对访问者进行哪些限制?是否需要单独的存储介质?是否需要进行表分区?选用堆表还是索引组织表?等等。
fxEAP平台框架在逻辑上可以分为三个层次:
解压安装
配置IDEA
git clone https://github.com/lrJAP/fxEAP.git
git clone https://gitee.com/lrJAP/fxEAP.git
可以直接使用dump文件恢复Oracle或者MySQL数据库。
下载地址:Apache Maven
解压到指定位置
修改settings.xml
可以为操作系统增加MAVEN_HOME参数,并把%MAVEN_HME%/bin添加到PATH参数中(以Windows为例)
需要安装Maven Helper插件
方式同上。
下载示例项目配置文件
配置文件说明
控制台加解密工具
com.lirong.eap.platform.base.bs.utils.JasyptUtils
示例:
打开Service页签
如果使用的是IntelliJ IDEA社区版本,则需要找到WebAppFullApplication类,在类名上右击,选择Run "WebAppFullApplication"或者"Debug WebAppFullApplication"。
服务端演示启动类
com.lirong.eap.webapp.full.WebAppFullApplication
参数配置
打开配置窗口
设置VM参数
输入VM参数
JVM示例参数
-ea -server -Xmx2g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED -Dio.netty.tryReflectionSetAccessible=true -DEAP_WORKING_PATH=E:/IDEAWorkspace/lrJAP_V1.1.2.RELEASE/10.Config/lrjap_working_path/webapp-demo-service -Dlogging.config=${EAP_WORKING_PATH}/config/logback.xml
EAP_WORKING_PATH需要指向服务端参数所在的目录(config子目录的上一层)。
-Dlogging.config指定logback日志配置文件。
运行服务端
启动类
com.lirong.eap.test.HelloDesktopApplication
参数设置
参数为服务类设置VM参数的方式。
VM参数设置
JVM参数示例
-Xmx2g
-XX:MaxMetaspaceSize=512m
-Dprism.lcdtext=false
--module-path
C:/JavaFX/javafx-sdk-17.0.2/lib
--add-opens
java.base/jdk.internal.misc=ALL-UNNAMED
--add-modules=javafx.controls,javafx.web
--add-exports=javafx.base/com.sun.javafx.beans=ALL-UNNAMED
--add-exports=javafx.base/com.sun.javafx.property=ALL-UNNAMED
--add-exports=javafx.base/com.sun.javafx.collections=ALL-UNNAMED
--add-opens=javafx.graphics/javafx.scene=ALL-UNNAMED
--add-exports=javafx.graphics/com.sun.javafx.scene.layout=ALL-UNNAMED
--add-exports=javafx.controls/com.sun.javafx.scene.control=ALL-UNNAMED
--add-opens=javafx.controls/javafx.scene.control.skin=ALL-UNNAMED
运行客户端
演示用户
用户名及密码 | 说明 |
---|---|
admin/1 | 系统管理员,中文环境 |
test01/1 | 测试用户,英文环境 |
user01/1 | 测试用户,繁体中文环境 |
TODO
修改JVM参数
运行客户端
本地缓存
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。