企业级JavaEE开发框架bbossgroups作者尹标平专访

bbossgroups是国内首款集AOP、MVC、持久化、JSP标签库、分布式RPC服务、分布式事件框架于一身的企业级JavaEE开发框架,在Apache License Version 2.0 许可协议下开源。

官网地址: http://www.bbossgroups.com/
官方博客: http://yin-bp.iteye.com/

为了使大家进一步了解这个框架,我们专访了bbossgroups的作者尹标平(ID: yin-bp)。

欢迎大家推荐更多开源项目给我们,支持中国的开源项目发展,如果您和您的团队希望展示创业理念和有趣之处,或者有朋友正在创造这样的价值,请联系我们,发信到[email protected]即可。


先来个自我介绍吧!


尹标平,2001年大学毕业,一直从事JavaEE企业应用开发和架构设计工作,做过开发员、架构师、项目经理之类的,喜欢搞点开源方面的东东,比较拿得出手的开源项目只有bbossgroups。


b


bossgroups是什么?该项目的由来和发展历程?


bbossgroups是一个企业级开源JavaEE开发框架,简称为bboss,可以在官方博客中找到bboss的几乎所有资料。


bboss的发展历史略显平淡,大致在2005年初开始bboss的开发工作。那时我所在的公司刚刚经历从CS向BS(也就是C++向Java)的技术转型,JavaEE的技术基础比较薄弱,老板决定要搞一套JavaEE的基础开发平台用于公司未来所有业务系统开发,这个平台早期的技术体系采用了Struts1和Hibernate(当时还没怎么接触过Spring),我作为骨干开发人员参与了这个平台的开发,我们发现Struts1和Hibernate的配置文件相当多而且繁琐,开发效率低下,HQL不能满足各种复杂业务查询需求,作为一个平台来说要能够满足在可以预见的未来的各行业各领域业务系统开发的需要,同时对技术体系能够进行高度的可定制化和扩展,而且当时有个客户明确要求我们提供的平台不能使用Hibernate(原因我们没有太多去追究)。正是由于这些因素,促成了我自发编写bboss框架的决定,也得到了当时公司老板的大力支持。

bboss框架和平台基本上是同步进行开发,采用bboss逐步替换掉平台中早期引入的Struts 1和Hibernate。随着基础平台的顺利完成并在所在公司大范围应用,bboss也得到广泛的应用和推广,并帮助所在公司迅速完成了JavaEE技术的原始积累,使其拥有了自主开发的技术体系和基础开发平台,使得该公司处于当时同行业领域的领先地位。后需还基于bboss和基础平台开发出了内容管理系统、数据交换平台、开放服务平台以及监控系统等一系列广受欢迎的产品。

bboss早期只提供了用于前端开发的标签库(bboss-taglib)、持久层框架(bboss-persistent)以及一个IOC容器(bboss-ioc)的雏形,三者可以独立使用,又可以很好地融合在一起使用。到2008年,这三个开发套件已经非常成熟,而且衍生出来一个解决集群节点之间缓存同步刷新的分布式事件框架(bboss-event),很好地解决了基础平台权限缓存和其他基础数据缓存部署在大量集群节点之间的数据实时同步问题。2008年年底,我将bboss开源了(基于Apache开源协议),bboss有了一个新的开始。

2009年是bboss发展举步维艰的一年,也是bboss发展的重大转折点。当时很多公司都在搞基于BS可视化表单的快速开发平台。我所处的公司业务处于突飞猛进的时期,为了追求快速开发的目标,公司老板顺应潮流并着手构建类似的快速开发平台,并设想逐步原有基础开发平台。此时,我仍然继续坚持Bboss开发和维护工作。还好当时我带领一个小型的团队正在开发一套数据交换产品,该产品同样基于bboss进行开发,虽然没有外部需求,但是我们项目团队内部对bboss的需求非常旺盛,不断提出新的需求。通过不断地改进,bboss反而得到了长足的发展,在bboss-ioc的基础上开发了bboss的rpc开发套件(可以使用http/netty/mina/jms/webservice/jgroups等协议);基于bboss ioc提供了自己的序列化机制;基于bboss ioc集成了Apache CXF Webservice引擎等等。

2010年bboss体系中增加了bboss-mvc这个新的成员,bboss-mvc基于bboss-ioc开发,完全实现了mvc2模型;同时进一步封装和简化持久层API,采用bboss ioc xml文件来配置和管理SQL语句。由于当时公司的快速开发平台应用情况不尽人意,bboss重新成为很多部门业务系统开发的首选开发框架。

bboss的官网在2011年开通了,这里要特别感谢欧怀海和熊超两位高手的无私帮助,先后为bboss官网提供了非常棒的部署服务器。

2011-2012年是新的bboss被广泛推广和快速成长的两年,先后增加了国际化机制、防止表单重复提交和跨站攻击机制;bboss 标签库提供更加丰富的数据展示标签和逻辑标签,与流行的jQuery框架进行很好的结合,增加了一系列安全标签;bboss持久层事务管理框架可以方便地托管并整合bboss/hibernate/mybatis等持久层框架的事务,很好地解决了:
  • bboss持久层和开源工作流activiti(基于mybatis)的事务一致性问题
  • Hibernate和和开源工作流activiti(基于mybatis)的事务一致性问题

总体来说bboss从2005年诞生至今,已经走过7年的发展历程,在这7年里,个人觉得做的比较成功的一点就是在bboss和开发者之间营造了一种亲和关系,想开发人员之所需,帮助他们成功,同时也促成bboss的成功。

感谢广大支持和使用bboss的朋友,他们的大力支持和鼓励才是bboss可持续发展的力量源泉,期望大家继续关注和支持bboss。


bbossgroups包含哪些组件?主要功能?


bbossgroups包含bboss mvc、bboss ioc、bboss持久层、bboss标签库、bboss rpc、bboss 工具包、bboss event七大部分,主要功能和特色如下:

  • aop/ioc 是整个bboss的基石,提供多种组件管理ioc容器类型,提供依赖注入(支持循环依赖注入、构造函数注入、属性注入)、组件生命周期管理、工厂模式、声明式事务配置等等。
  • rpc 丰富的通讯协议栈(http/netty/mina/jms/webservice/rmi/jgroups/restful),通过restful可以轻松实现服务路由功能,服务调用安全高效,提供可插拔的安全认证和rpc方法权限检测机制,可以通过rpc框架方便地获取bboss ioc中配置的组件的远程调用代理从而实现rpc调用。
  • distribute event framework (基于bboss rpc框架,分布式事件框架,可靠的分布式事件管理机制)。
  • jsp taglib 分页、树、列表、抽屉式、逻辑标签、map/list/arrary数据结构展示标签等等。
  • mvc(基于bboss ioc,灵活简单的参数绑定机制(基础参数绑定、list、map、数组),很好地支持json/jsonp,传统/html5文件上传下载,支持restful,word/pdf生成和自动转换插件,强大的安全认证过滤器,请求参数编码过滤器,灵活的请求跳转路径映射机制)。
  • 国际化组件(属性文件热加载、缓冲、高性能、支持从classpath和web应用目录中加载资源文件)。
  • persistent,简洁而功能齐全的o/r mapping api,高效的查询行处理器,内置分页查询API(针对不同数据库进行优化),支持多数据源的API,全局事务管理(可整合托管bboss,ibatis,Hibernate的事务管理),很好地和业界主流数据源结合(dbcp,c3p0,proxool,weblogic,druid等),可采用bboss ioc来管理sql语句 (支持热加载,支持动态sql语句)。
  • xml-bean serializable(高效,很好地支持各种java数据类型和复杂对象结果,支持引用关系的序列化和反序列化,基于bboss ioc)
  • jms 开发套件,主要针对activimq。
  • 集成apache cxf webservice 简单方便地实现webservice服务发布和客户端代理调用
  • cluster with jgroups 可以轻松的集群节点的远程组件(bboss ioc管理的组件)的单播和组播调用。
  • quartz任务引擎管理组件 ,基于该组件可以非常方便地配置和管理quartz任务
  • 完备的框架监控机制,内置apache dbcp数据源监控,bboss mvc配置监控,bboss ioc组件配置监控,webservice服务配置监控等。


相比其他JavaEE框架,bbossgroups有哪些特色?


相比业界主流JavaEE框架(Spring、Struts、Hibernate、iBATIS/MyBatis),bboss到底有哪些特色,这个是很多朋友多次问起的问题。


bboss基本上涵盖了Spring ioc、Struts、iBATIS/MyBatis三大框架的主要功能,可以这么说,采用一个bboss您就可以同时得到这三大框架的好处,而且为您免除了整合这些框架的烦恼。另外,在上面已经对bboss的功能和特色做了具体而详细的介绍,大家也可以访问bboss博客了解更加详细的内容。同时bboss每次新的版本发布时也会对新版本中增加功能特性和主要功能改进进行详细的介绍。可能很多内容介绍得比较粗糙,不能面面俱到,欢迎大家批评指正。


有没有统计过bbossgroups目前的应用情况?


bboss是从项目里面提炼出来的,使用涉及的项目非常广泛,在此不一一罗列,主要应用的领域有:电子政务、企业/政府门户网站、基础产品(内容管理、开发平台、数据交换平台、开放服务平台)、教育、税务、运营商、公安、企业财务、工程机械制造、银行等等。



可以这么说,bboss不仅为采用它的项目团队和公司带来直接的经济收益,而且为他们带来事业和工作上的成就感,为企业培养一批批优秀的开发人员;基于bboss开发的系统无时无刻都在为用户创造着价值。


如何基于bbossgroups开发项目?


我们为bboss的初学者提供了一个入门级教程,可以帮助大家快速上手bboss——《搭建自己的bbossmvc eclipse开发工程,编写第一个实例》


在bboss每个发布的版本中提供了一些bestpractice,涉及bboss的主要功能demo。

你可以随时在github上获取bboss的最新源代码,最新的版本为bboss3.6.0分支(以实际情况为准): https://github.com/bbossgroups/bbossgroups-3.5

源码的构建方法,可以参考: bboss 版本ant构建方法

如果你在实际开发过程中碰到问题或者需要获取bboss功能的具体使用介绍时,一种途径是通过 bboss的官方博客查找相关资料,另外一个途径就是加入bboss的QQ交流群,在群中发帖留言,群号:21220580、166471282、166471103、154752521、3625720。

最后可以随时通过bboss官网跟踪bboss的最新发展动态。


bbossgroups采用哪种开源协议?


bbossgroups采用的开源协议是Apache License Version 2.0 ,完全免费开放,文档完全免费,而且为使用者提供免费的开发培训。


使用bbossgroups开发项目需要注意事项?


Bbossgroups最新版本所需的JDK版本最好是JDK 1.6或以上版本。


bbossgroups开发团队现状?其他开发者如何参与贡献?


Bbossgroups开发团队成员目前只有我一个人,希望有更多的有志之士加入进来,为bboss注入新的思想和特色。bboss的源代码托管在github上,可以通过以下地址获取:

代码:
git clone git://github.com/bbossgroups/bbossgroups-3.5.git  

后续新的开发人员可以通过github来贡献和提交代码。


bbossgroups未来的发展计划?


Bbossgroups未来的发展计划为:
  • 完善bboss各模块现有功能
  • 完善bboss开发文档
  • 推广bboss
  • 根据实际项目需要随时引入新的功能




你可能感兴趣的:(企业级JavaEE开发框架bbossgroups作者尹标平专访)