为什么用EJB?
- 处理分布式
- 处理分布式事务
- 处理不同的客户端
EJB3.0技术简介:
1.被简化的EJBAPI
- EJB3.0消除了对Home接口的依赖,所有的持久化对象不在依赖任何EJB API接口;SessionBean,Message Driven Bean ,EntityBean现在只是简单的JavaBean。
2. Java Annotation
EJB3.0技术需要用到JDK5.0的新技术java annotaton。Annotation特性使得发布描述文件变成一个可选项,而非必须选项。Ejb3.0定义了很多的annotation,覆盖了众多的与持久化相关的概念,比如Bean的类型、依赖注入、事务管理、安全、回调、O-R映射,关系等等。如果你想要覆盖在annotation中的定义,那么发步描述文件依然有他的用武之地。jboss应用服务器和hibernate都支持这些annotation,这就意味这,如果你使用hibernate的话,你可以在ejb3.0之外和单独的java应用程序中获得ejb3.0annotation所带来的好处。
3. 依赖注入(DI)
通过定义@inject、@EJB、@Resource等annotations,这些依赖关系现在可以由容器来注入到EJB中。
4.可选的回调机制
开发者现在可以仅仅实现他们感兴趣的那些回调方法。@PostConstuct , @PreDestroy,@Pre{ersist或者@PostPersist,开发者可以映射任何javaBean或回调的方法,让他们接受这些事件。
5. Entity Manager API
一个普通的java Bean 实例,可以通过EntityManager API来持久化到数据库,当然可以从EntityManager中获取一个javaBean实例,修改之后,在次持久化到数据库中、jBOss应用服务器和hibernate都支持这个新的API。
6. 简化的持久化模型和改良的查询
EJB3.0将java持久化模型进行标准化, HIbernate扮演了至关重要的角色,一套完整的java Annotation 被用来定义处理O-R映射和不同对象关系类型。EJB3.0也增强了EJB-QL查询语言。支持动态查询,子查询,批量更新,批量删除
7. 可以脱离容器使用
EJB3.-规范允许你在普通的java应用程序中使用它的持久化API。