一键式Java Web应用开发框架junx-ep(JDK17+springboot3.0+layui2.8)
junx-ep一款基于DDD思想,采用JAVA17+springboot3.0+layui搭建的极简web应用程序开发平台,传统DDD四层代码架构,内部参考CQRS逻辑,做了查询和命令分离(前后端完全分离,layui组件可以替换成其他框架,这里只是推荐使用layui),轻巧易用,模块化开发框架,按需加载,只需要几个注解,就能拥有Web应用系统基础功能模块与开发框架。现在这些前端开发流行MVVM项目,做了很多优秀的前端框架,像Angularjs、vue、ant-design等等,确实对于前端开发来说是福音,但是这些框架对后端开发人员很不友好,简单的全栈式开发框架似乎成为了历史。因此在目前这个后端开发人员做前端开发越来越难的时候,我决心做一款适合后端开发人员使用的全栈式开发框架(提供一种模块化框架的开发思路),一键式开源Java开发框架junx-ep(简称EP框架),提供了一整套web应用开发技术栈,由于本人懒且谨慎,因此设计本框架的原则就是“在安全可靠的情况下,能少写一行代码是一行代码”,在本框架下开发出来的系统,代码量比传统的要少很多(对比过本公司其他项目,整体代码量少三分之一左右,当然还得看程序猿本身素养,素养差的就算把屠龙刀给他,他也只会拿刀背去砍)。框架实现上前后端完全分类,目前提供的前端是基于Layui+JQuery技术栈实现,逻辑简单,方便快捷,是后端开发人员的福音,适合个人和中小型研发团队使用。EP框架本身从2019年开发至今,已经使用了多年,经过公司多个项目考验,在此框架上研发功能也方便快捷,后续会根据常用功能不断优化,通常来说只需要升级jar包即可。EP框架的demo体验地址与git地址如下:
demo URL: https://blog.junxworks.cn/demo/eui/login.html 帐号:test 密码:123
demo git URL: https://gitee.com/junxworks/junx-ep-demo
EP源码git URL: https://gitee.com/junxworks/junx-ep
废话不多说,下面看看如何开启极速开发之旅。
一、下载maven种子项目
之所以要另起一个种子项目,是因为不用每次都特别繁琐的去配置一些文件,把一些通用的配置都写进种子文件里面,像pom.xml,application.yml,bootstrap.yml等等常用配置,这样的话下次新建项目的时候把种子项目拿过来稍作修改即可。
种子项目git地址:https://gitee.com/junxworks/junx-ep-demo
下载种子项目过后,需要进行以下几处调整:
1、将项目名修改成自己想要的项目名字,新建自己的包路径,将seed项目下的启动类和配置类拷贝过去
2、调整pom.xml中的项目配置信息
3、调整logback.xml配置
4、调整application中的上下文配置以及数据库配置
以上改动完成后,基本上就可以开始新的项目编写了,是不是很简单?
如果说不用种子项目自己创建项目也行,直接引用junx-ep包,开启对应的注解即可(文章后面有讲),EP包在maven中央仓库有发布,引用如下:
<dependency>
<groupId>io.github.junxworks</groupId>
<artifactId>junx-ep-sys</artifactId>
<version>{LATEST_VERSION}</version>
</dependency>
# 注意,EP框架本身依赖mybatis,目前数据库只支持mysql(或者兼容mysql的DB)
目前junx-ep有两个大版本,都可以在Maven中央仓库上搜索到,1.X版本是基于JDK8+Springboot2开发,2.X版本是基于JDK17+Springboot3+DDD开发,完成了Java EE到Jakarta EE的升级。
二、初始化项目
数据库为避免数据库建表冲突,建议新建一个开发库实例。在改完seed项目过后,确认application-dev.yml配置文件中的数据库配置已经调整完毕,运行Application.java启动文件,即可自动初始化EP所需的表结构。项目启动完毕后,即可通过地址 http://localhost:端口/上下文/eui/login.html 地址进行项目访问了,初始用户名admin,初始密码123456,首次进去后必须修改密码(目前没对密码强度做认证,后续更新会加上)。登录页面如下图所示:
登录后的首页如下所示:
做到这里EP框架的初始化就算完成了,目前EP有三个功能拓展的功能模块,分别是定时任务管理junx-ep-scheduler,文件服务junx-ep-fs,以及非常有用的代码生成模块junx-ep-codegen,通过maven引入对应的jar包即可。
<dependency>
<groupId>io.github.junxworks</groupId>
<artifactId>junx-ep-scheduler</artifactId>
<version>${junx-ep.version}</version>
</dependency>
<dependency>
<groupId>io.github.junxworks</groupId>
<artifactId>junx-ep-codegen</artifactId>
<version>${junx-ep.version}</version>
</dependency>
<dependency>
<groupId>io.github.junxworks</groupId>
<artifactId>junx-ep-fs</artifactId>
<version>${junx-ep.version}</version>
</dependency>
以上使用的springboot自动配置进行功能注入的,有一点要注意,以上功能模块都依赖junx-ep-sys模块,如果没有用sys进行系统初始化,引入以上模块不会生效。sys是EP最基础的模块,其实现了基础的应用管理功能,目前角色权限这块是基于RBAC做的,认证鉴权框架用的shiro,实现了组织、用户、菜单(权限控制到按钮级)、角色、系统日志、数据字典等功能。junx-ep-scheduler模块实现了基于quartz的定时任务管理,该模块初始化后会自动引入定时任务功能,届时会新增定时任务管理菜单。junx-ep-fs模块,这个是文件上传下载功能模块,支持本地文件系统驱动与阿里云oss驱动,引入模块jar包后,同样EP框架会自动进行相关初始化,应用就拥有了上传下载查看图片与缩略图的能力,是不是非常方便?后续还会陆陆续续新增更多有用的模块,例如activiti工作流模块等等。这里EP框架只是提供了一种系统模块化的思路,带上自己的一些愚见,其实很早之前就希望做一款能复用、好用、简单方便的java开发框架,直到遇到了layui,发现这款前端框架很适合我的想法,结合了springboot的一些机制,终于实现了junx-ep这款一键式开发平台,目前已经运行了3年多,做过的项目不少,一直在优化过程中,开源出来也是希望能给人提供帮助,或者帮助一些小型团队提供一种思路,仅此而已,开源这条路我会一直走下去,毕竟已经走了很多年了,坚持总会带来好运。在后面的文章里,将会对EP框架进行更详细的介绍。
标题:一键式Java Web应用开发框架junx-ep(JDK17+springboot3.0+layui2.8)
作者:michael
地址:https://blog.junxworks.cn/articles/2021/02/23/1614077567094.html