FAQ
![]() |
甲壳虫框架免费的吗?其授权协议如何? |
| 这是一个免费开源的软件,您必须在《甲壳虫J2EE应用框架软件授权协议》 或《GNU Lesser General Public License v3.0》下合法使用、修改或重新发布。 | |
![]() |
当前流行Struts、Spring、hibernate等框架已经相当成熟,还有必要开发新的框架吗? |
| 这是相当有必要的。设计策略的不同,导致了解决问题的方法不同,这无疑决定了框架的多样性。像Web表示层框架,除了Struts还有WebWork、Turbine、Echo、MaveRick等等;类似于Spring的框架还有realMethods、Keel、Expresso等;而相似于hibernate的持久层框架就更多了ibatis、jdo、jpa、JULP、Mr.Persister、TopLink等等。没有一种框架能够同时满足所有开发设计策略的需求,所以是百花齐放才是常态。 另外,所谓的“成熟”也是相对的,当前流行的Struts、Spring、hibernate也是存在不少缺点的,对它们的批评的声音从来都是不绝于耳的。只有根据项目需求、开发团队技术能力等因素的具体情况,选择或开发一个适合自身需要的框架才是解决问题之道。 |
|
![]() |
国人开发框架比得上国外的产品吗? |
| 这是一个我们在推广框架经常被客户问到的问题。我们民族工业多年相对落后,造成国外产品优胜印象,客户的这种疑虑我们是可以理解的。不过,相对其它传统行业,信息技术产业,特别是互联网技术行业,国内是和国外技术发展是同步的。 特别地,对于J2EE这种标准规范来说,其技术基本上都是公开的,构建于这个标准规范上面的框架产品说白了就是一套共通重用性功能组件而已,基本上没有什么高深技术,只是开发策略和设计理念的不同而已。所以,在J2EE领域强行区分国内、国外来讨论国产好还是国外好没有必要,它们应该放在同一个水平线来评估。 反而,国产框架由于源于国内需求经验而开发,往往更符合国情。 |
|
![]() |
甲壳虫框架与当前“Struts+Spring+hibernate”典型框架组合有什么区别和优势? |
|
甲壳虫框架涵盖了J2EE技术体系的表示层、业务层和持久层,是针对J2EE应用开发的一套完整的解决方案。 (1)在持久层我们提供的类似于微软ADO模式数据存取框架,真对数据存取操作的实际需求提供了组件化的操作组件,而且同样解决了常见O/R映射框架自动装配数据的便利特点。与hibernate试图提供给完整O/R映射解决方案不同,我们追求的是编程的便利性、可维护性、执行效率和解决问题的实用性。因为我们理念是,当前所有的企业级数据库系统都是关系模型的数据库产品,这是决定O/R映射框架先天不足的根本而无法改变的原因。随着业务需求、数据存储形式、查询条件等多样性和复杂化,hibernate在内存消耗、解决能力、灵活性和执行效率方面都显得中气不足。面对这些hibernate不胜任地方,开发不得不采取其它框架或低级jdbc api来解决,一个应用涉及多套解决方案,这无疑又对代码的整合性和可维护性带来挑战。实践经验告诉我们,一个业务简单应用hibernate解决问题能力的比率大概8:2或再高点,如果是一个业务复杂企业系统,这个比率往往只有4:6甚至更低点。使用我们持久层框架就不存在这中问题,凡是jdbc和sql能解决的问题,我们都能解决,因为我们只是对这些低级api方便性封装而没有改变和约束它们访问数据库能力。 (2)在Web表示层当前流行的Web框架类型主要有事件驱动和请求驱动两种。甲壳虫Web子框架和Struts一样都是基于MVC Model2模型的请求驱动框架。所以,它们在开发方式上很相像,但是具体开发细节和设计策略上面却有很大不同。Struts臃肿而且配置复杂,甲壳虫Web简洁而配置简易,开发快速、实用出发功能更为强大,性能更优秀、可控性更好。 (3)在业务领域,J2EE标准规范中是EJB 会话Bean组件的范畴,Spring针对EJB使用难度较大的情况,利用IOC模式重新构建了一个POJO(普通java Bean)的生命周期管理微容器,并以之为基础,集成当前开源世界各个功能开发组件,使得开发和测试上大为便利,因而倍受欢迎。显然Spring Bean容器和EJB容器对应的,也就是说Spring提供了一个替换EJB容器的解决方案,这也就是为什么Spring社区鼓吹“without EJB”的原因了。Spring把自己在业务领域叫做集成(integration),它的目的是用POJO来衔接表示层和持久层(EJB容器目的一样,只是用的是Session Bean而不是POJO,这也是EJB3出来Spring受到很大冲击的根本原因)。所以,严格意义来说,Spring Bean和EJB只是一个容器组件模型而不足以称为一个业务层的框架。 因为我们认为一个业务层框架必须具备以下基本特征: 甲壳虫业务框架凌驾于业务容器(EJB容器或Bean容器)之上,我们既不拒绝EJB容器也不反对Bean容器,消除了开发上的“轻量”与“重量”之分。对于EJB容器我们进行模式化封装,消除了开发EJB难度和Bean容器配置文件的依赖性、复杂性,对于普通开发人员来说,这些都是完全透明的。 作为一个领先的业务框架,甲壳虫业务还具备以下特有功能: ![]() ![]() ![]() ![]() (4)甲壳虫框架还包含了一个基于Java标准多线程技术构建的用于应用服务器性质程序开发的高效易用框架,这也是“Struts+Spring+hibernate”所不具备的。“Struts+Spring+hibernate”组合,特别是使用了Spring无疑是自己的应用绑定在Spring Bean容器里面,意味着永远抛弃了EJB容器,背着一个“轻量”包袱,这是得不偿失的。 |
|
![]() |
甲壳虫框架的发展历程如何,它成熟吗? |
| 甲壳虫框架具体项目实践和经验积累中,一步步的开发出来的。作者2000年从微软的DNA平台转向Sun公司的J2EE平台,也算是J2EE比较早的一批开发者。甲壳虫框架的核心雏形和设计理念形成于2003年初,当时为了构建一个集中式的证券交易系统,笔者决定构建自己核心应用开发框架。经历2004、2005、2006和2007多年的发展和完善,现在甲壳虫的框架已经相当成熟稳定了,已经应用到诸如:教育、证券、金融财务、互联网等多个行业系统中。 | |
![]() |
甲壳虫框架4个子框架能否拆分?与其它框架的集成如何? |
| 甲壳虫J2EE框架涵盖了J2EE体系结构的表示层、业务层、持久层。由于设计领域模型的清晰的界定,甲壳虫框架4个子框架是可以拆分和自由组合的。例如:对于持久层,你偏重于使用O/R映射的hibernate,那么你可以使用“BeetleWeb+BeetleBusinessLogic+Hibernate”,有例如“Struts+Spring+hibernate”当前流行组合换成“BeetleWeb+Spring+Hibernate”,又或者“Struts+BeetleBusinessLogic+hibernate”等。当然按照的设计理念和开发经验,我们认为完全采取甲壳虫框架是最优的解决方案。特别地,我们推荐使用Beetle替换掉Sping作为业务层。因为Spring不足以成为一个业务框架,Beetle带来的好处是不言而喻的。 | |
![]() |
甲壳虫框架学习曲线如何? |
| 甲壳虫框架学习非常简单,拥有J2EE开发经验的程序员,看看例子代码就能上手。对于新的java初学者,经过1小时的培训就能够投入J2EE应用系统开发。 | |
![]() |
甲壳虫框架运行环境和兼容如何? |
| 甲壳虫框架采取标准Java技术开发,严格遵守J2EE1.4规范定义。兼容最新的1.5(也称5.0)规范。运行于jdk1.4(含1.4)以上的JVM容器。由于遵守J2EE规范,理论上支持所有通过Sun J2EE验证的J2EE应用服务器。经过我们测试支持的J2EE服务器有:WebLogic(8、9、10)、JBoss(3、4、5)、WebSphere(5、6)、JOnAS4.1、Oracle9iAS、;Web容器有:tomcat(4、5、6)、resin(2、3) | |





