轻量级JavaWeb开发框架EWeb4J作者赖伟威专访
程序员文章站
2022-02-22 08:18:36
...
EWeb4J 是一款基于 Servlet/JDBC 构建的轻量级 Web 开发框架,它不仅融合了 SSH 的核心优点(全栈式),而且提供了诸如模块化、热加载、多数据源、RESTful等非常吸引人的特性。它小巧灵活,遵守约定优于配置的原则。目前 EWeb4J 的最新版本为 1.9.1。
Github地址:https://github.com/laiweiwei/eweb4j-framework
为了使大家对 EWeb4J 有进一步的了解,本期我们采访了该框架的作者赖伟威。
ITeye期待并致力于为国内优秀的开源项目提供一个免费的推广平台,如果你和你的团队希望将自己的开源项目介绍给更多的开发者,或者你希望我们对哪些开源项目进行专访,请告诉我们,发站内短信给ITeye管理员或者发邮件到webmaster@iteye.com即可。
Github地址:https://github.com/laiweiwei/eweb4j-framework
为了使大家对 EWeb4J 有进一步的了解,本期我们采访了该框架的作者赖伟威。
ITeye期待并致力于为国内优秀的开源项目提供一个免费的推广平台,如果你和你的团队希望将自己的开源项目介绍给更多的开发者,或者你希望我们对哪些开源项目进行专访,请告诉我们,发站内短信给ITeye管理员或者发邮件到webmaster@iteye.com即可。
先来个自我介绍吧!
我叫赖伟威,网名“像风一样*”,今年刚毕业,目前在一家深圳创业小公司工作,主方向是 Java + Web。
我的邮箱是:l.weiwei@163.com
我的博客是:http://laiweiweihi.iteye.com
我的微博是:http://weibo.com/weiweimiss
我的邮箱是:l.weiwei@163.com
我的博客是:http://laiweiweihi.iteye.com
我的微博是:http://weibo.com/weiweimiss
EWeb4J 是什么?有哪些功能?
EWeb4J 是一个基于 Servlet/JDBC 构建的轻量级 Java Web 开发框架。它可以代替 SSH 来开发一个完整的 Web 应用程序。专注于少侵入、少配置、松耦合架构风格的 Web 应用程序开发。EWeb4J 的目标是让 Java Web 开发更加简单。
Github地址:https://github.com/laiweiwei/eweb4j-framework
EWeb4J的特点如下:
Github地址:https://github.com/laiweiwei/eweb4j-framework
EWeb4J的特点如下:
- 约定优于配置,配置覆盖约定
- POJO式的编程。再也不用 “被继承” 某个类,不用 “被实现” 某个接口
- Full-Stack
- RESTful (兼容JAX-RS 部分实现)
- MVC(路由规则/验证器/拦截器/文件上传下载/JSP、Json、Xml、FreeMarker、Velocity等)吸收了Play、Struts、SpringMVC等框架的特点
- Simple IOC(setter注入,构造器注入,@Ioc注解注入)
- ActiveRecord 支持
- JPA标准下的多数据源、表关系、多表查询、分页、链式编程等,简单又实用的ORM
- JDBC模板、事务模板
- K-V配置文件支持
- 国际化支持
- 日志支持
- MVC\ORM\IOC 各个模块*开闭
- 自定义扫描加载Jar包
- 同步发布一个在线演示项目SolidBase
开发EWeb4J的初衷是什么?毕竟已经有很多现成的框架了。
首先,我是从2010年开始开发此框架,那时候我还在读大二下学期,我们刚学习JSP/Servlet/JDBC不久,还没接触其他框架。
记得那时候我们老师要求做一个简单的数据库应用——学生管理系统,用JDBC来实现。当时我在使用JDBC的时候感觉到重复的代码特别多(这一点所有初学者都应该感同身受吧),而我自己说实话有些封装强迫症,于是就自己把JDBC封装成一个微型框架,那时候取了个名字EasyDAO(现在应该还能搜索到),还在我们学校的BBS论坛发布了。再后来,添加了Servlet扩展,那时候开始接触到部分框架了,网上学习了不少它们的思想,觉得蛮有意思就想模仿着做一个,也许是那时候年少,于是一个新的*——EWeb4J第一个版本就出来了。
后来不断地接触新的东西——Struts、Hibernate、Spring、SpringMVC、Nutz、SimpleFramework、JDONFramework、GRails、Play等等。看到好多前辈都在说不要重复造*,那时候心里确实有些动摇,但是到现在还是坚持了下来。我这样想,造*没什么不好,我这么年轻,我既然喜欢这么做,我就这么做吧,何必想太多。
到现在,我开始寻找EWeb4J与其他框架不同的特点,并且会为此一直努力下去!
记得那时候我们老师要求做一个简单的数据库应用——学生管理系统,用JDBC来实现。当时我在使用JDBC的时候感觉到重复的代码特别多(这一点所有初学者都应该感同身受吧),而我自己说实话有些封装强迫症,于是就自己把JDBC封装成一个微型框架,那时候取了个名字EasyDAO(现在应该还能搜索到),还在我们学校的BBS论坛发布了。再后来,添加了Servlet扩展,那时候开始接触到部分框架了,网上学习了不少它们的思想,觉得蛮有意思就想模仿着做一个,也许是那时候年少,于是一个新的*——EWeb4J第一个版本就出来了。
后来不断地接触新的东西——Struts、Hibernate、Spring、SpringMVC、Nutz、SimpleFramework、JDONFramework、GRails、Play等等。看到好多前辈都在说不要重复造*,那时候心里确实有些动摇,但是到现在还是坚持了下来。我这样想,造*没什么不好,我这么年轻,我既然喜欢这么做,我就这么做吧,何必想太多。
到现在,我开始寻找EWeb4J与其他框架不同的特点,并且会为此一直努力下去!
与其他框架相比,EWeb4J的优势或特点是什么?
- 松耦合,解放程序员,再也不用“被实现”某个类,“被实现”某个接口,完全是POJO的编程。
- 自定义加载哪些JAR包
- 未来的模块化
EWeb4J的性能、扩展性如何?
关于性能,目前还没有具体的性能报告,期待大家的使用、测试和反馈。
关于EWeb4J的扩展性,EWeb4J可以:
关于EWeb4J的扩展性,EWeb4J可以:
- 基于Servlet/JDBC的薄封装,没有一级/二级缓存,没有懒加载
- 可以自定义加载哪些JAR包
- 未来会支持模块化
谈谈EWeb4J-SlidBase!是如何实现的?
SolidBase是一个使用EWeb4J开发的基础功能平台。
演示地址:http://210.38.137.96/solidbase/main
Github地址:https://github.com/laiweiwei/eweb4j-solidbase
SolidBase的实现:
演示地址:http://210.38.137.96/solidbase/main
Github地址:https://github.com/laiweiwei/eweb4j-solidbase
SolidBase的实现:
- 前端使用DWZ+JSP(感谢DWZ的无私奉献)。
- 后端使用 EWeb4J 做底层框架,使用了MVC、ORM、IOC、Properties等功能。
- 权限参考了RBAC0 模型 + REST架构风格思想来实现,可以自定义权限。
- 功能模块包括但不限于菜单管理、部门管理、用户管理、角色管理、权限管理。
EWeb4J目前的开发人员情况?目前的版本发布周期?
目前就我一人,已确定加入的有若干人,但都因为工作繁忙一直都是我一个人solo。
发布周期不确定,一般是几个月左右。
发布周期不确定,一般是几个月左右。
其他开发者如何交流、反馈、参与贡献?
可以通过QQ群和Github来交流、反馈,早期还使用Google Code。
QQ群:216125802
Github:https://github.com/laiweiwei/eweb4j-framework
Google Code:http://code.google.com/p/eweb4j/
接下来打算写一系列的博客,作为EWeb4J的开发文档。
QQ群:216125802
Github:https://github.com/laiweiwei/eweb4j-framework
Google Code:http://code.google.com/p/eweb4j/
接下来打算写一系列的博客,作为EWeb4J的开发文档。
EWeb4J 采用什么开源协议?
EWeb4J 采用 Apache2.0 协议,对于商业使用没有什么限制。
EWeb4J 未来的发展计划?
- 完善文档,会专门写一系列博客
- 模块化
- 热部署
- 完善JPA标准的支持
- 完善JAX-RS标准的支持
- 将SolidBase做成一个企业可用的CMS