`
raymond2006k
  • 浏览: 295083 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

对于EJB3的一些看法(在IBM秋季沙龙上的讨论)

阅读更多
    
     实际上EJB3规范我05年就略微了解了一些。
     9月3号,广州IBM组织了技术沙龙,专题介绍EJB3,JPA的技术特点。这几年由于对 Hibernate,Spring 应用经验增加,当时对EJB3 的一些疑惑和不感冒,现在更加明确了。
     沙龙上主要针对Hibernate 介绍了 EJB 3的 JPA, 针对Spring 介绍了 EJB 3 的容器特性,感觉IBM有贬低 Hibernate, Spring,力推EJB 3的气势,大概是为 WAS7的推广做准备吧,呵呵。
    
    一些明显的点就是 EJB 3为了轻量化,避免 EJB 1, EJB 2当年设计缺陷的后尘,采用了许多 Spring IOC的思想; 为了实体bean, 而又采用了 Hibernate 的许多思想,只是适当的引入了 annotation 等技术。似乎有些偷窃概念和技术,而又贬低前人的意味,这一点让人感觉很不好。
   
     另外一点,运用 annotation 进行映射,服务发布,注入等, 着实感觉不是一个好的方案,这就是我3年前的感觉。 虽然说不一定完全用 annotation 开发,但IBM将这个未经实践检验的开发模式作为一个开发推荐规范介绍给我们客户,, 有点类似当年极力推 EJB 2的感觉。 annotation 是JDK1.5开始的一个语言级的好特性,但不能滥用。特别是在 ORM 映射,将bean发布为服务等,直接在method上写 annotation,就是一种 hard coding,通俗说就是写死的做法,如:将实体的表名写死,将属性对应的库表column写死,将发布的web service 的地址写死等, 失去了 ORM 映射配置的灵活性.
  
    @Entity
  @Table(name = "STUDENT")  
  public class Student implements Serializable  {
     .....
    }
    



  
    @ManyToOne
  @JoinColumn(name = "student_id")  
  public Student getStudent() {
      return student;
  }
   

   
    实践才是最好的选择器,就像Hibernate ,Spring 成为事实上的企业级开发标准一样。 所以我们对 IBM,Oracle 的新品宣传,新规范介绍, 还要多留个心眼,有自己的思考,不能死板的照单全收。
分享到:
评论
9 楼 ray_linn 2008-09-24  
所谓的xml灵活性通常不具备任何实际利用价值,你不可能只修改xml,不去修改实体bean,除非你很有毛病,喜欢把column名字改来改去。
8 楼 SteveGY 2008-09-23  
我怀疑所谓的“灵活性”是否真的有存在的必要。在ORM的方法中,运行时可变的数据表名字和column真的有大量的使用吗?是否有人很容易使用Hibernate组成复杂的自定义查询方法了?我好想记得,前几天还有人推荐team规范“禁止使用HQL”的。
在实际项目中,如果数据库设计都已经发生变化,改动java源码难道不是必要的吗?或者说修改xml会比较容易?再或者说一个表增加了3个column,java源码也是不需要改变的?到底要怎样理解hard coding?把一种基于java源程序的hard coding转移到基于xml配置文件中,就算是去除了hard coding?hard coding和“灵活性”都不是绝对的。
EJB3在使用annotation,这是一种设计选择,他们既然这样选择,还是衡量过灵活性和易用性的,除去hibernate不讲,看看最近spring的某些言论,支持EJB3已经是基本一致的看法了,想想当年spring是怎么起家的,反EJB算一面旗帜,也算一点点讽刺吧。
我一直在team规范中使用iBATIS,iBATIS for java and for .net,2种语言类型的项目都用,个人认为hibernate在跨数据库支持上还可以,其他的都不怎么样。
7 楼 sway 2008-09-23  
jpa可以不用注释吗?我还真不知道..
麻烦指点.
6 楼 Joo 2008-09-23  
JPA和annotation有直接关系吗? JPA也可以不用注释啊,原生Hibernate也可以用Hibernate.annotation啊,包括Spring也有
5 楼 sway 2008-09-23  
现在就在用jpa,对annotation没有好感。
4 楼 hsq972 2008-09-22  
感觉是时候要开始留意EJB3了.这东西毕竟是大厂出品,对就业还是有非常有帮助的.而且SUN在规划EJB3时完全没有了当初的强权,变得更迎合开发者的想法!没准就这样成功了!
3 楼 everlasting_188 2008-09-22  
不能炒作概念,我觉得还是选择能解决问题的框架,毕竟大部分人不是搞学术研究的。当年被ejb1.0正惨了,不愿意当新技术的实验田。原理都差不多,还是加强基础为好。
2 楼 xiaopang106 2008-09-18  
哥们 多举出一点ejb3的缺点让我们看看
1 楼 tsc9541 2008-09-18  
天下本就是分久必合,合久必分,说不定哪里EJB3就真的流行起来了

相关推荐

    IBM EJB实验说明

    3. **配置部署描述符**:虽然EJB 3.0允许省略大部分XML配置,但在某些情况下,可能仍需要编辑`ejb-jar.xml`来定制部署行为。 4. **测试和调试**:利用RAD内置的调试器对EJB进行单元测试和集成测试,确保其功能正确...

    实战角度比较EJB2和EJB3的架构异同

    EJB2和EJB3是EJB技术的两个主要版本,它们在架构上存在显著差异,尤其是在编程模型的简化、依赖注入(DI)和对象创建方式等方面。 EJB2的编程模型相对复杂,一个EJB通常需要两个接口(业务接口和远程接口)以及一个...

    ejb3 带源码

    EJB3是EJB规范的一个重要版本,它在EJB2的基础上进行了重大改进,极大地简化了开发流程,降低了对开发者的要求。"ejb3 带源码"的资源,如"Mastering EJB3"和"Beginning EJB3 Application Development"等,提供了深入...

    EJB 3实战 带书签

    虽然EJB 3是Java EE标准的一部分,但开发者需要了解如何确保应用可以在不同的Java EE容器和应用服务器上运行。这涉及到容器相关的配置、兼容性和最佳实践的讨论。互操作性部分则关注于EJB与不同技术(如Web Services...

    EJB3 PPT教程

    在EJB3中,SessionBean变得更加轻量级,不再需要XML配置,而是通过注解实现。你可以学习如何定义SessionBean接口、实现类,并使用`@Stateless`或`@Stateful`注解来指定其状态行为。 **二、EntityBean** EntityBean...

    EJB3基础教程

    EJB3应用通常部署在Java EE应用服务器上,如Glassfish、WildFly或WebLogic等。开发者需要创建一个包含所有必需bean和元数据的ejb-jar文件,并将其打包进war或ear文件中。 ### 10. 持续集成与测试 EJB3支持单元测试...

    EJB3的三本好书第3本 Mastering EJB3 4ed

    EJB3的三本好书之三,也很不错的一本ejb3的书籍,是英文版,附带源代码,这本书的好处是与Mastering EJB 3ed有一定的继承性,可以对比来看. 3本书的地址 1. Beginning EJB3 Application Development From Novice to ...

    ejb3进阶案例

    总结,ejb3进阶案例涵盖了ejb3的核心组件,通过实践可以在理解ejb3特性的基础上,提升在JBoss 5上的应用开发和部署能力。通过深入学习和实践这些案例,开发者能够更好地掌握ejb3的精髓,从而构建出高效、稳定的企业...

    EJB3应用实例

    通过这个"JBOSS7+EJB3"实例,我们可以深入了解EJB3如何在实际环境中运行,以及如何在JBOSS7这样的应用服务器上部署和管理EJB服务。这不仅有助于提升开发者对EJB3的理解,也有助于在实际项目中更高效地利用EJB3来构建...

    EJB3入门例子

    1. **注解驱动(Annotation-based)**:在EJB3中,开发者可以使用注解来声明组件的角色、生命周期方法和持久化属性,如`@Entity`、`@Stateless`、`@Stateful`、`@SessionBean`等,大大减少了XML配置文件的使用。...

    \websphere部署EJB3.docx

    在本文档中,我们探讨了如何在IBM WebSphere应用服务器上部署EJB 3应用程序。WebSphere是IBM提供的一款强大的Java应用服务器,它支持Java EE(Enterprise JavaBeans)规范,包括EJB 3。以下是详细的步骤和知识点: ...

    ejb3-persistence

    EJB3的持久化标准很大程度上受到了Hibernate的影响,并且在某些情况下,EJB3的持久化可以与Hibernate共存或互换。Hibernate提供了更丰富的功能,如二级缓存、事件监听和自定义类型,对于需要更强大ORM功能的开发者来...

    EJB3开发Entity

    EJB3是EJB规范的一个重要版本,它在EJB2的基础上进行了许多简化和改进,使得开发更加高效且易于理解。本文将深入探讨EJB3中的Entity Bean,它是EJB3中的持久化组件,用于代表数据库中的实体。 1. **实体Bean的概念*...

    EJB3(入门经典简版)

    EJB3支持JSR 330标准的依赖注入,通过`@Inject`注解可以在bean之间注入依赖,简化了组件间的协作。 6. **容器管理事务(Container Managed Transactions, CMT)** EJB容器自动管理事务的开始、提交、回滚,开发者...

    struts2-ejb3配置

    在JBoss 6这样的应用服务器上整合Struts2和EJB3时,可能会遇到一些挑战。首先,Struts2在JBoss 6中可能出现部署问题,这主要是因为JBoss 6引入了新的Jar文件前缀“vfs”,而Struts2的Xwork组件对此不兼容。Xwork是...

    ejb3_structs

    【 ejb3_structs 】是一个关于企业级...这个项目对于学习EJB3和Struts的集成,以及理解企业级Java应用开发有很好的实践价值。通过深入研究源码,可以更好地掌握这两者之间的协作方式,从而提升在实际开发中的能力。

    EJB3 入门经典 源码

    EJB3是EJB规范的一个重要版本,它在EJB2的基础上进行了重大改进,引入了许多简化开发的新特性,使得EJB更加易用且高效。这个压缩包文件"**EJB3 入门经典 源码**"很可能是为了帮助初学者理解并学习EJB3的基本概念、...

    EJB3 实例练习(一)

    EJB3是EJB规范的一个重要版本,它在EJB2的基础上进行了许多简化和改进,使得开发更加高效且易于理解。在这个实例练习中,我们将探讨EJB3的基本概念、特性以及如何创建和运行一个简单的EJB3应用。 1. EJB3概述 EJB3...

    EJB3的三本好书第2本, EJB3 in Action 2007

    EJB3的三本好书第二本,最好的介绍ejb3的书,看过之后,其他的书都送人了,而且附带的源代码,几乎包括了所有的主流应用服务器的例子,glassfish, jboss, weblogic, oracleAS 3本书分别是: 1. Beginning EJB3 ...

    EJB3实战的源代码

    EJB3是EJB规范的一个重要版本,它在EJB2的基础上进行了重大改进,极大地简化了开发流程,降低了学习曲线,提升了开发效率。 在"EJB3实战的源代码"这个资源中,我们可以深入学习和理解EJB3的各种特性。EJB3引入了...

Global site tag (gtag.js) - Google Analytics