轻量级javaweb开发框架eweb4j作者赖伟威专访 -凯发k8国际

2012-12-04  编辑 wangguo 评论(42条) 有48551人浏览
eweb4j 是一款基于 servlet/jdbc 构建的轻量级 web 开发框架,它不仅融合了 ssh 的核心优点(全栈式),而且提供了诸如模块化、热加载、多数据源、restful等非常吸引人的特性。它小巧灵活,遵守约定优于配置的原则。目前 eweb4j 的。


github地址:

为了使大家对 eweb4j 有进一步的了解,本期我们采访了该框架的作者赖伟威。

iteye期待并致力于为国内优秀的开源项目提供一个免费的推广平台,如果你和你的团队希望将自己的开源项目介绍给更多的开发者,或者你希望我们对哪些开源项目进行专访,请告诉我们,发站内短信给或者发邮件到webmaster@iteye.com即可。

先来个自我介绍吧!

我叫赖伟威,网名“像风一样自由”,今年刚毕业,目前在一家深圳创业小公司工作,主方向是 java web。



我的邮箱是:l.weiwei@163.com
我的博客是:
我的微博是:

eweb4j 是什么?有哪些功能?

eweb4j 是一个基于 servlet/jdbc 构建的轻量级 java web 开发框架。它可以代替 ssh 来开发一个完整的 web 应用程序。专注于少侵入、少配置、松耦合架构风格的 web 应用程序开发。eweb4j 的目标是让 java web 开发更加简单。

github地址:

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包

开发eweb4j的初衷是什么?毕竟已经有很多现成的框架了。

首先,我是从2010年开始开发此框架,那时候我还在读大二下学期,我们刚学习jsp/servlet/jdbc不久,还没接触其他框架。

记得那时候我们老师要求做一个简单的数据库应用——学生管理系统,用jdbc来实现。当时我在使用jdbc的时候感觉到重复的代码特别多(这一点所有初学者都应该感同身受吧),而我自己说实话有些封装强迫症,于是就自己把jdbc封装成一个微型框架,那时候取了个名字easydao(现在应该还能搜索到),还在我们学校的bbs论坛发布了。再后来,添加了servlet扩展,那时候开始接触到部分框架了,网上学习了不少它们的思想,觉得蛮有意思就想模仿着做一个,也许是那时候年少,于是一个新的轮子——eweb4j第一个版本就出来了。

后来不断地接触新的东西——struts、hibernate、spring、springmvc、nutz、simpleframework、jdonframework、grails、play等等。看到好多前辈都在说不要重复造轮子,那时候心里确实有些动摇,但是到现在还是坚持了下来。我这样想,造轮子没什么不好,我这么年轻,我既然喜欢这么做,我就这么做吧,何必想太多。

到现在,我开始寻找eweb4j与其他框架不同的特点,并且会为此一直努力下去!

与其他框架相比,eweb4j的优势或特点是什么?

  • 松耦合,解放程序员,再也不用“被实现”某个类,“被实现”某个接口,完全是pojo的编程。
  • 自定义加载哪些jar包
  • 未来的模块化

eweb4j的性能、扩展性如何?

关于性能,目前还没有具体的性能报告,期待大家的使用、测试和反馈。

关于eweb4j的扩展性,eweb4j可以:

  • 基于servlet/jdbc的薄封装,没有一级/二级缓存,没有懒加载
  • 可以自定义加载哪些jar包
  • 未来会支持模块化
还是比较容易扩展的。

谈谈eweb4j-slidbase!是如何实现的?

solidbase是一个使用eweb4j开发的基础功能平台。

演示地址:
github地址:



solidbase的实现:

  • 前端使用dwz jsp(感谢dwz的无私奉献)。
  • 后端使用 eweb4j 做底层框架,使用了mvc、orm、ioc、properties等功能。
  • 权限参考了rbac0 模型 rest架构风格思想来实现,可以自定义权限。
  • 功能模块包括但不限于菜单管理、部门管理、用户管理、角色管理、权限管理。

eweb4j目前的开发人员情况?目前的版本发布周期?

目前就我一人,已确定加入的有若干人,但都因为工作繁忙一直都是我一个人solo。

发布周期不确定,一般是几个月左右。

其他开发者如何交流、反馈、参与贡献?

可以通过qq群和github来交流、反馈,早期还使用google code。

qq群:216125802
github:
google code:

接下来打算写一系列的博客,作为eweb4j的开发文档。

eweb4j 采用什么开源协议?

eweb4j 采用 apache2.0 协议,对于商业使用没有什么限制。

eweb4j 未来的发展计划?

  • 完善文档,会专门写一系列博客
  • 模块化
  • 热部署
  • 完善jpa标准的支持
  • 完善jax-rs标准的支持
  • 将solidbase做成一个企业可用的cms
  • 大小: 98.9 kb
  • 大小: 55.6 kb
  • 大小: 61.7 kb
  • 大小: 12.7 kb
  • 大小: 33.6 kb
  • 大小: 101.1 kb
  • 大小: 25.4 kb


评论 共 42 条
42 楼 2014-08-04 15:55
期待你能更完善,感想更要敢做
41 楼 2013-05-28 18:25
zidafone 写道
有可以直接import到myeclipse的demo吗?


40 楼 2013-05-23 11:25
有可以直接import到myeclipse的demo吗?
39 楼 2013-04-16 22:40
vincentedlin 写道
过了一遍运用这个框架写的代理,感觉过于繁琐。
建议大于去看下spring mvc3,专注于业务的零配置、全注释的框架。

你好,本框架暂时还没对代理作支持哦
38 楼 2013-04-15 11:43
过了一遍运用这个框架写的代理,感觉过于繁琐。
建议大于去看下spring mvc3,专注于业务的零配置、全注释的框架。
37 楼 2013-03-15 08:59
楼主这种精神值的我们好好学习。
36 楼 2013-01-22 20:08
以下配置为啥不行?,驱动包都加了。



mssql2005




















35 楼 2013-01-22 17:23
大哥,不支持sqlserver 吗?
34 楼 lshhjxlj 2013-01-13 19:10
现在框架已经到了泛滥成灾的地步了,说实话听到“框架”两字就蛋疼啊!
33 楼 2012-12-28 07:38
欣赏有想法并努力实践的人。支持!
32 楼 2012-12-24 10:30
你大二 就开始写了啊,真厉害。你现在工作 多久了呢? 我现在 也想 写自己的东西,但是 老感觉,思路不清晰
31 楼 2012-12-20 13:17
amb_hbj 写道
经常报这个错,但不影响功能,望调整一下 呵呵,对了 现在支持sqlserver oracle数据库吗?:

警告: basicresourcepool: an idle resource is broken and will be purged.
java.sql.sqlexception: connection is invalid
at com.mchange.v2.c3p0.impl.c3p0pooledconnectionpool$1.testpooledconnection(c3p0pooledconnectionpool.java:224)
at com.mchange.v2.c3p0.impl.c3p0pooledconnectionpool$1.refurbishidleresource(c3p0pooledconnectionpool.java:147)
at com.mchange.v2.resourcepool.basicresourcepool$asynctestidleresourcetask.run(basicresourcepool.java:1396)
at com.mchange.v2.async.threadpoolasynchronousrunner$poolthread.run(threadpoolasynchronousrunner.java:368)
2012-12-20 10:42:51 com.mchange.v2.resourcepool.basicresourcepool$asynctestidleresourcetask run
警告: basicresourcepool: an idle resource is broken and will be purged.
java.sql.sqlexception: connection is invalid
at com.mchange.v2.c3p0.impl.c3p0pooledconnectionpool$1.testpooledconnection(c3p0pooledconnectionpool.java:224)
at com.mchange.v2.c3p0.impl.c3p0pooledconnectionpool$1.refurbishidleresource(c3p0pooledconnectionpool.java:147)
at com.mchange.v2.resourcepool.basicresourcepool$asynctestidleresourcetask.run(basicresourcepool.java:1396)
at com.mchange.v2.async.threadpoolasynchronousrunner$poolthread.run(threadpoolasynchronousrunner.java:368)

这个是c3p0的警告信息。
30 楼 2012-12-20 10:49
经常报这个错,但不影响功能,望调整一下 呵呵,对了 现在支持sqlserver oracle数据库吗?:

警告: basicresourcepool: an idle resource is broken and will be purged.
java.sql.sqlexception: connection is invalid
at com.mchange.v2.c3p0.impl.c3p0pooledconnectionpool$1.testpooledconnection(c3p0pooledconnectionpool.java:224)
at com.mchange.v2.c3p0.impl.c3p0pooledconnectionpool$1.refurbishidleresource(c3p0pooledconnectionpool.java:147)
at com.mchange.v2.resourcepool.basicresourcepool$asynctestidleresourcetask.run(basicresourcepool.java:1396)
at com.mchange.v2.async.threadpoolasynchronousrunner$poolthread.run(threadpoolasynchronousrunner.java:368)
2012-12-20 10:42:51 com.mchange.v2.resourcepool.basicresourcepool$asynctestidleresourcetask run
警告: basicresourcepool: an idle resource is broken and will be purged.
java.sql.sqlexception: connection is invalid
at com.mchange.v2.c3p0.impl.c3p0pooledconnectionpool$1.testpooledconnection(c3p0pooledconnectionpool.java:224)
at com.mchange.v2.c3p0.impl.c3p0pooledconnectionpool$1.refurbishidleresource(c3p0pooledconnectionpool.java:147)
at com.mchange.v2.resourcepool.basicresourcepool$asynctestidleresourcetask.run(basicresourcepool.java:1396)
at com.mchange.v2.async.threadpoolasynchronousrunner$poolthread.run(threadpoolasynchronousrunner.java:368)
29 楼 2012-12-19 10:57
我就觉得看着眼熟…貌似在哪见过…想想,好像是海大08软件的师兄…师兄大神啊。。。。。。
28 楼 2012-12-17 09:40
写软件不怕重复,功能重复的软件多得是,还不是继续有人写。
27 楼 2012-12-11 09:59
lintghi 写道
superhj1987 写道
所说的有点貌似在spring mvc中都具有了。不过还是很欣赏作者这种钻研的精神的。自己当初就没有坚持下载写完一个框架。

对啊. 作者花了很多心血在上面. ps: 其实都在注解形式的springmvc出来前, eweb4j就已经有相应的支持了.

很厉害,很励志。
26 楼 2012-12-10 21:07
superhj1987 写道
所说的有点貌似在spring mvc中都具有了。不过还是很欣赏作者这种钻研的精神的。自己当初就没有坚持下载写完一个框架。

对啊. 作者花了很多心血在上面. ps: 其实都在注解形式的springmvc出来前, eweb4j就已经有相应的支持了.
25 楼 2012-12-10 09:49
所说的有点貌似在spring mvc中都具有了。不过还是很欣赏作者这种钻研的精神的。自己当初就没有坚持下载写完一个框架。
24 楼 2012-12-06 18:32
youjianbo_han_87 写道
youjianbo_han_87 写道
的确很轻量级,下下来看看,然后再加一个缓存层就完美了。呵呵。

有跑起来它的示例程序 solidbase 吗?不管是从googlecode上,或者是git上下载的程序,运行都 java.lang.instantiationexception。

作者能否搞个完整的能运行的例子,而不是src搞个包,webapp又搞个包。


这里有1.9版本的下载,最新的还没发布所以只能从github获取自己build。
23 楼 2012-12-06 16:44
22 楼 2012-12-06 16:26
youjianbo_han_87 写道
的确很轻量级,下下来看看,然后再加一个缓存层就完美了。呵呵。

有跑起来它的示例程序 solidbase 吗?不管是从googlecode上,或者是git上下载的程序,运行都 java.lang.instantiationexception。

作者能否搞个完整的能运行的例子,而不是src搞个包,webapp又搞个包。
21 楼 2012-12-06 14:08
的确很轻量级,下下来看看,然后再加一个缓存层就完美了。呵呵。
20 楼 2012-12-06 14:02
学习,学习。。。
19 楼 2012-12-06 12:21
要追求快、约定大于配置,为什么不用python呢。
18 楼 2012-12-06 11:18
随便点了点,在一个表单里多选多个内容,然后点修改,弹出来页面内容的是最后选择的一个信息。但是如果我去掉其他的只剩下一个选项的时候,他并不是把选中的那个信息弹出来。而是弹出了我最后操作的一条,怪怪的。
17 楼 2012-12-05 20:28
bluedest 写道
不管怎么说,支持有想法的人。

[/quaote]
支持开源
16 楼 2012-12-05 20:27
bluedest 写道
不管怎么说,支持有想法的人。

15 楼 2012-12-05 16:51
o_o_0 写道
updatebyfields exception

修改下 数据库表 t_user 的 status字段类型为varchar
14 楼 2012-12-05 13:52
updatebyfields exception
13 楼 2012-12-05 12:19
怎么,例子介绍,很少呀!

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • spring适用于轻量级javaweb开发,是非常实用的工具包,

  • eweb4j 是一款基于 servlet/jdbc 构建的轻量级 web 开发框架,它不仅融合了 ssh 的核心优点(全栈式),而且提供了诸如模块化、热加载、多数据源、restful等非常吸引人的特性。它小巧灵活,遵守约定优于配置的原则。...

  • 资源名称:java web轻量级开发全体验内容简介:《javaweb轻量级开发全体验》共2篇(分为18章):基础篇、框架技术篇。全书内容遵循“循序渐进”的原则,逐步深入,理论联系实际,内容通俗易懂,涵盖了当前javaweb...

  • 轻量级java web整合开发入门:struts2 hibernate4 spring3

  • simple-framework使用文档​simple-framework是一种轻量级java web框架,可基于此框架进行简单的web开发。​本项目主要供学习交流使用,email:简介​simple-framework是基于原生servlet实现的一种轻量级java web框架...

  • 自己搭建轻量级javaweb框架之mvc以及ioc

  • autumn 是基于 java 语言的极速 web orm 框架,其核心设计目标是开发swift、学习简单、功能强大、轻量级、易扩展。 有效提高web项目的开发效率!为您节约更多时间,去陪恋人、家人和朋友 :) autumn有如下主要特点 ...

  • javaweb是基于 springboot2 layui2.5.6 thymeleaf shiro mybatisplus 研发的权限(rbac)及内容管理系统,致力于做更简洁的后台管理框架,包含系统管理、代码生成、权限管理、站点、广告、布局、字段

  • 资源名称:深入理解javaweb开发技术:探索基于主流框架的最佳组合内容简介:《深入理解javaweb开发技术:探索基于主流框架的最佳组合》内容新颖、知识全面、讲解详细,可以帮助读者深入理解javaweb开发技术的基本...

  • 《java web轻量级开发全体验》共2篇(分为18章):基础篇、框架技术篇。《java web轻量级开发全体验》内容遵循“循序渐进”的原则,逐步深入,理论联系实际,内容通俗易懂,涵盖了当前java web开发所流行的众多开发...

  • blade 是一款追求简约、高效的 web 框架,让 javaweb 开发如虎添翼,在性能与灵活性上同时兼顾

  • 虽然目前有很多种javaweb应用开发框架,但play框架是一种新兴的框架,可以帮助开发人员高效的构建 web应用。本文详细介绍了play框架的使用,包括模型层、控制层、视图层和http路由等内容。通过本文的介绍,开发人员...

  • javaweb开发学习路线及java三大框架分享?共4页.pdf.zip

  • web开发应用框架介绍与比较,分为四章进行展示:django的python框架、jfinal框架、struts框架,以及最后章节对比与总结。末尾写出参考文献。 内容完整,图文表并茂,可用于javaweb讨论课展示。 文件仅供参考学习。

  • 管理系统是一种通过计算机技术实现的用于组织、监控和控制各种活动的软件系统。这些系统通常被设计用来提高效率、减少错误、加强安全性,同时提供数据和信息支持。以下是一些常见类型的管理系统: 学校管理系统: 用于学校或教育机构的学生信息、教职员工信息、课程管理、成绩记录、考勤管理等。学校管理系统帮助提高学校的组织效率和信息管理水平。 人力资源管理系统(hrm): 用于处理组织内的人事信息,包括员工招聘、培训记录、薪资管理、绩效评估等。hrm系统有助于企业更有效地管理人力资源,提高员工的工作效率和满意度。 库存管理系统: 用于追踪和管理商品或原材料的库存。这种系统可以帮助企业避免库存过剩或不足的问题,提高供应链的效率。 客户关系管理系统(crm): 用于管理与客户之间的关系,包括客户信息、沟通记录、销售机会跟踪等。crm系统有助于企业更好地理解客户需求,提高客户满意度和保留率。 医院管理系统: 用于管理医院或医疗机构的患者信息、医生排班、药品库存等。这种系统可以提高医疗服务的质量和效率。 财务管理系统: 用于记录和管理组织的财务信息,包括会计凭证、财务报表、预算管理等。财务管理系统

  • gb2312字符集 作用:国家简体中文字符集,兼容ascii。 位数:使用2个字节表示,能表示7445个符号,包括6763个汉字,几乎覆盖所有高频率汉字。 范围:高字节从a1到f7, 低字节从a1到fe。将高字节和低字节分别加上0xa0即可得到编码。 gbk字符集 作用:它是gb2312的扩展,加入对繁体字的支持,兼容gb2312。 位数:使用2个字节表示,可表示21886个字符。 范围:高字节从81到fe,低字节从40到fe。 gb18030字符集 作用:它解决了中文、日文、朝鲜语等的编码,兼容gbk。 位数:它采用变字节表示(1 ascii,2,4字节)。可表示27484个文字。 范围:1字节从00到7f; 2字节高字节从81到fe,低字节从40到7e和80到fe;4字节第一三字节从81到fe,第二四字节从30到39。

  • 毕业设计,安卓app,基于java开发的学生成绩课件管理系统app,包括pc端和安卓anroid手机app,内含java完整源码 安卓andriod学生成绩课件管理系统 系统开发环境: windows myclipse(服务器端) eclipse(手机客户端) mysql数据库 服务器也可以用eclipse或者idea等工具,客户端也可以采用android studio工具! 系统客户端和服务器端架构技术: 界面层,业务逻辑层,数据层3层分离技术,mvc设计思想! 服务器和客户端数据通信格式:json格式,采用servlet方式 【服务器端采用ssh框架,请自己启动tomcat服务器,hibernate会自动生成数据库表的哈!】 hibernate生成数据库表后,只需要在admin管理员表中加个测试账号密码就可以登录后台了哈! 下面是数据库的字段说明: 班级: 班级编号,班级名称,开办日期,班主任 学生: 学号,登录密码,所在班级,姓名,性别,出生日期,学生照片,联系电话,家庭地址 老师: 教师编号,登录密码,姓名,性别,出生日期,联系电话,邮件,地址,

  • 管理系统是一种通过计算机技术实现的用于组织、监控和控制各种活动的软件系统。这些系统通常被设计用来提高效率、减少错误、加强安全性,同时提供数据和信息支持。以下是一些常见类型的管理系统: 学校管理系统: 用于学校或教育机构的学生信息、教职员工信息、课程管理、成绩记录、考勤管理等。学校管理系统帮助提高学校的组织效率和信息管理水平。 人力资源管理系统(hrm): 用于处理组织内的人事信息,包括员工招聘、培训记录、薪资管理、绩效评估等。hrm系统有助于企业更有效地管理人力资源,提高员工的工作效率和满意度。 库存管理系统: 用于追踪和管理商品或原材料的库存。这种系统可以帮助企业避免库存过剩或不足的问题,提高供应链的效率。 客户关系管理系统(crm): 用于管理与客户之间的关系,包括客户信息、沟通记录、销售机会跟踪等。crm系统有助于企业更好地理解客户需求,提高客户满意度和保留率。 医院管理系统: 用于管理医院或医疗机构的患者信息、医生排班、药品库存等。这种系统可以提高医疗服务的质量和效率。 财务管理系统: 用于记录和管理组织的财务信息,包括会计凭证、财务报表、预算管理等。财务管理系统

global site tag (gtag.js) - google analytics
网站地图