设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客

JavaEE5与Struts、Spring、Hibernate

2013-11-7 16:11| 发布者: joejoe0332| 查看: 4760| 评论: 0|原作者: CNET科技资讯网|来自: CNET科技资讯网

摘要:   因为java技术的开放性,因为JCP所给予开发人员的诸多选择性,作为java的研发/爱好者,在进行项目开发的时候,必然会面对java世界中 的诸多框架,struts,spring,hibernate/ibatis或者servlet,ejb等等--诸多开源的或者J ...


  Spring vs. EJB 3.0


 

Spring

EJB3

标准(Standard

 

是,Java EE 5标准组成部分

持久(Persistence

JDBC, Hibernate, JDO, iBatis and JPA(ongoing spring 2.0)

JPA

声明式服务(Declarative Services

支持

支持

依赖注入(Dependency Injection

支持

支持

集群(Cluster

 

支持


  Spring框架是一个开源项目,并不是一个标准的东西。Spring自己定义了一套XML配置文件大纲以及程序接口,从长远考虑,有很大的不确定 性。Spring的主要开发者来自Interface21公司(这是帮我非常敬重的人),Interface21靠相关咨询和服务维持,作为一个商业团体 其利益取向将可以完全左右Spring未来的方向。相比EJB 3出身名门正派的标准血统并有众多主流商业厂商支持,Spring的非标准性将可能带来极大的风险。


  Spring框架本身不带持久实现,但它支持JDBC, Hibernate, JDO和 iBatis等持久化框架。Spring通过使用不同的DAO和Helper类以利用JDBC、Hibernate、iBatis或JDO,所以并没有实 现和最终服务提供者的隔离。简单来说,就是需要重构代码才能实现持久化框架的更换。EJB 3.0的持久集成在应用服务中,通过JPA,可以在底层更换持久实现,如将Hibernate更换为Toplink。EJB 3.0的持久具有更大的灵活性,并有利于厂商进行性能优化和扩展。


  Spring和EJB3.0都为企业应用提供运行时服务,(如:事务、安全、日志消息、配置服务)。由于这些服务都不是直接与应用的业务逻辑相关 联,所以都不是由应用来自行管理。EJB3.0使用Java注释来配置声明式服务,Spring使用XML配置文件。在大多数情况下,EJB3.0的注释 声明显得更为简单和优雅。Spring使用XML来定义属性并配置声明式服务的结果将是一个冗长而不稳定的配置文件。

 

  依赖注入模式(DI)是在应用中实现松散耦合的最佳实践。Spring和EJB3.0都支持DI模式,但他们有着深刻的不同。Spring支持通用 的(但复杂的)基于XML配置文件的依赖注入API。EJB3.0支持注入大多数服务对象(如EJB和上下文对象)和通过简单注释声明的JNDI对象。


  EJB 3.0完全支持集群。部署在服务集群中的EJB3.0应用将自动获得负载均衡、分布缓存、状态复制等功能。底层的集群服务隐藏在EJB3.0编程接口后面,屏蔽了所有的复杂性。Spring没有简单的利用集群的方法。


  Hibernate vs. EJB 3.0


  Hibernate与EJB 3.0其实并没有很好的可比性,因Hibernate仅关注ORM,而EJB 3.0更多则更多表现为一种组件框架,其中包含ORM部分而已。EJB 3.0在设计过程中,曾经得益于Hibernate的作者Gavin King,据说EJB 3.0 EntityBean的设计理念完全来自于Hibernate。只需用将EJB 3.0 EntityBean API调用转换为Hibernate API,Hibernate就可以成为EJB 3.0中EntityBean的Implementation。


  当开源framework已经成为习惯性势力,并给人们带来众多乐趣或疲惫感的时候,Java EE 5的出现会是适逢其时吗?无论如何,是继续选择开源还是拥抱Java EE 5?相信今天这并不是个容易的选择,或许,随着更多的厂商发布支持Java EE 5的产品,提供更好的工具支持,这个答案才会明朗起来。


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部