`
碧海山城
  • 浏览: 190790 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

POJO式开发(一)

    博客分类:
  • DDD
阅读更多

POJO

 

      POJO就是简单java对象,不实现任何特殊接口。POJO这一名字由FowerRebbeccaParsosJosh MacKenzie(Foeler POJO)发明,目的地是为了给普通Java对象取个令人兴奋的、过目不忘的名字。

 

早期EJB及其存在的问题

 

      EJB1.0版本发布于1998年,它提供了两种企业bean:会话bean和试题bean。会话bean便是无状态服务或与客户端之间的有状态会话。实体bean表示数据库里的数据,最初意在实现业务对象。EHB2提炼了EJB编程模型。不仅增加了支持由容器管理的关系增强型实体bean,还新增了消息驱动bean(负责处理Java Message ServiceJMS,消息)

 

EJB存在的问题

 

       尽管有很多书帮助开发人员对付EJB,并学会如何有效的使用EJB,但是EJB的;两个主要问题并没有直接解决。

 

第一,   EJB鼓励开发人员编写过程式应用程序

第二,   使用EJB开发相当麻烦

 

过程式设计的缺点:

 

对业务逻辑的组织方式主要有两种:过程式或面向对象。过程式方式以函数为单元组织代码,这些函数操作单独的简单数据对象。在过程式架构中,数据结构遍布各处,并作为参数传入函数,或返回给调用函数。数据与操作之间的关系非常松散,并且完全由开发人员自己维护。在面向对象语言出现之前,这种编程方式主导了软件开发。

 

与之相比,面向对象方法则以对象为单元组织代码,这些对象具有状态和行为,并与其他对象协作。数据结构和操作定义在一个语言构造单元内,数据和对数据操作并存于其中。数据和操作之间的关系(和状态)由语言本省维护。与过程式设计相比,面向对象设计更易理解、维护、扩展和测试。

 

如果业务逻辑够简单,过程式设计方法倒也不成问题,但是业务逻辑总有变得愈加复杂的趋势。一旦需求改变,业务逻辑就必须实现新的特性,EJB的代码量会不断增加。

 

EJB2在一定程度上就是鼓励人们编写过程式代码,实现新行为时,不必像设计真正的对象模型那样费心地识别类并赋予其职责。相反,你可以编写一个新的会话bean方法或在现有方法里添加代码

 

这钟过程式的设计方法,有些开发人员仍把持久对象简单的视为一种向数据库存取数据和编写过程式业务逻辑方法,这就是所谓的贫血模型

 

EJB开发的麻烦:

 

n         你必须面对恼人而长的编辑-编译-调试周期

n         你得面对关注点缺少分离的显示

n          你必须编写大量的代码才能实现一个EJB

n         你必须编写数据传输对象(DTO)

 

 

POJO开发

 

       POJO进行开发,仅有POJO本身还是不够的。在企业应用程序里,你还需要诸如事务管理、安全和持久化等服务,此前这些服务由EJB容器提供。现在的解决方案是使用所谓“轻量级”框架来代替J2EE STACK里的一些“重量级”部分。主要是4种轻量级框架:HibernateJDOIbatisSpring

 

       这些技术的主要特征在于他们都是非侵入式的。它们提供事务和持久化时并不要求应用程序类实现任何特殊接口。甚至当应用程序的类需要运行在事务里或者持久化的时候,它们仍是POJO

 

                                          典型的EJBPOJO方法比较

 

 

典型的EJB方法

POJO方法

组织

过程式业务逻辑

面向对象设计

实现

基于EJB

POJO

数据库访问

JDBC/SQL或实体Bean

持久层框架

返回给表示层的数据

DTO

业务对象

事务管理

EJB容器管理的事务

Spring框架

应用程序组装

显示的JNDI查询

依赖注入

 

 

l         面向对象设计

 

整个设计更容易理解和维护

更易于测试

更易扩展

 

l         使用POJO

 

开发更加容易

更加快捷

可移植性增强

 

l         持久化POJO

 

使用JDOHibernate提供透明持久化,这意味着类不会意识到它们是持久的。应用程序只需要调用持久层框架API保存、查询和删除持久对象、而且对测试也很方便。

 

l         消除DTO

 

DTO又称为值对象(value object)。DTO只是一个由成员变量组成的简单行为对象,用于从业务层向表示层返回数据。这是由于表示层无法高效地访问EJB2实体bean,因此EJB程序需要DTO

 

向表示层返回HibernateJDOEJB3对象有两种方式。一种选择是表示层返回仍持久地的对象。另一种做法是让业务层返回脱管对象。

 

                    

 

l         POJO具有事务性

 

spring管理事务。对测试也很方便。

 

 

 

  • 大小: 16.1 KB
分享到:
评论

相关推荐

    Java快速开发平台J-Hi.doc

    Java 快速开发平台 J-Hi 是一款 JAVA WEB 应用软件快速开发开源平台,主要服务于软件企业和传统行业企事业单位信息中心的开发人员,为他们提供一套完整的一站式的 JAVA WEB 应用软件快速开发解决方案。该平台包括...

    ibatis 开发指南

    相对Hibernate和Apache OJB 等“一站式”ORM解决方案而言,ibatis 是一种“半 自动化”的ORM实现。 所谓“半自动”,可能理解上有点生涩。纵观目前主流的ORM,无论Hibernate 还是 Apache OJB,都对数据库...

    metaworks4:Metaworks 4是一个进步的企业Web框架,可促进基于POJO的域驱动开发,支持微服务的体系结构以及材料设计和响应式Web。 Metaworks 4利用了VueJS,Spring Data和Spring Hateoas。 此外,Metaworks4可以与OCE的组件(如IAM,API-GW,计费)组成,以启用MSA架构

    Metaworks 4是一个进步的企业Web框架,可促进基于POJO的域驱动开发,支持微服务的体系结构以及材料设计和响应式Web。 Metaworks 4利用了VueJS,Spring Data和Spring Hateoas。 另外,Metaworks4可以与OCE的组件(如...

    iBATIS 2.0 开发指南

    相对Hibernate和Apache OJB 等“一站式”ORM解决方案而言,ibatis 是一种“半 自动化”的ORM实现。 所谓“半自动”,可能理解上有点生涩。纵观目前主流的ORM,无论Hibernate 还是 Apache OJB,都对数据库结构提供了...

    ibatis开发指南

    相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,ibatis 是一种“半  自动化”的ORM实现。  所谓“半自动”,可能理解上有点生涩。纵观目前主流的 ORM,无论 Hibernate 还是  Apache OJB,都对数据库...

    iBatis开发资料

    相对Hibernate和Apache OJB 等“一站式”ORM解决方案而言,ibatis 是一种“半 自动化”的ORM实现。 所谓“半自动”,可能理解上有点生涩。纵观目前主流的ORM,无论Hibernate 还是 Apache OJB,都对数据库结构提供了...

    第4章Spring业务逻辑层技术.ppt

    Spring 框架还提供了一个插件式架构,降低了应用程序之间的依赖性。借助于 XML 定义文件,开发者能够在程序运行时连接不同的组件。 Spring 框架的核心概念包括: * IoC(Inverse of Control):控制反转技术。 * ...

    JavaEE企业级应用开发教程(Spring+SpringMVC+MyBatis)习题(2022).pdf

    17. Spring MVC 的前端控制器:Spring MVC 提供了一个前端控制器 DispatcherServlet,使开发人员无需额外开发控制器对象。 18. Spring 与 MyBatis 的整合:Spring 与 MyBatis 框架的整合时,可以通过 Spring 的编程...

    Ibatis开发指南.rar

    相对Hibernate和 Apache OBJ 等 "一站式" ORM 解决方案而言, ibatis 是一种 "半自动化的" ORM实现 所谓"半自动化" ,可能理解上有点生涩.纵观目前主流的ORM,无论Hibernate还是Apache OJB,都是对数据库结构提供了较为...

    apache-camel-demo

    Apache Camel是一个基于规则路由和中介引擎,提供企业集成模式的Java对象(POJO)的实现,通过应用程序接口(或称为陈述式的Java领域特定语言(DSL))来配置路由和中介的规则。领域特定语言意味着Apache Camel支持你...

    Spring常问的真实大厂面试题汇总(含答案)

    Spring 框架⽬标是简化Java企业级应⽤开发,并通过POJO为基础的编程模型促进良好的编程习惯。 Spring是⼀个轻量级的IoC和AOP容器框架。是为Java应⽤程序提供基础性服务的⼀套框架,⽬的是⽤于简化企业应⽤程序的开发...

    Java代码生成工具(傻瓜式操作无需教程的代码生成工具) v2.0.zip

    java代码生成工具是一款傻瓜式操作,无需教程的代码生成工具。    java代码生成工具功能特点:  支持oracle、db2、sqlserver、mysql、数据库。  支持struts1、struts2、springmvc、spring、hibernate3框架。...

    《MyEclipse 6 Java 开发中文教程》前10章

    第一章 安装配置开发环境 18 1.1系统需求 18 1.2 JDK 的下载,安装和配置(可选) 18 1.2.1下载JDK 18 1.2.2 安装JDK 23 1.2.3 配置环境变量(可选) 24 1.2.4 JDK 6 中文文档下载地址(ZIP,HTML,CHM)(可选) 26 1.3...

    ibatis 开发指南(pdf)

    43 <br>ibatis 开发指南 相对Hibernate 和Apache OJB 等“一站式”ORM 解决方案而言,ibatis 是一种“半 自动化”的ORM 实现。 所谓“半自动”,可能理解上有点生涩。纵观目前主流的ORM ,无论...

    Rio:Rio是一种开源技术,为开发,部署和管理由服务组成的分布式系统提供了动态架构。

    力拓提供了一种非侵入式模型,消除了围绕服务开发和部署的复杂性。 使用Maven构建服务并使用服务工件进行部署。 主要功能包括: 分布式系统的动态架构内置的故障检测和恢复服务基于策略的SLA实施支持外部系统,封装...

    Spring-Series:Spring&Spring Boot&Spring Cloud&Alibaba Cloud微服务与云原生实战

    ··弹簧系列Spring微服务与云原生实战 Spring的设计目标是为我们提供一个一站式的轻量级应用开发平台,抽象了应用开发中遇到的共性问题。作为平台,它考虑到了企业应用资源的使用,某些数据的持久化,数据集成,...

    ibatis实现过程

    相对Hibernate和Apache OJB 等“一站式”ORM解决方案而言,ibatis 是一种“半 自动化”的ORM实现。 所谓“半自动”,可能理解上有点生涩。纵观目前主流的ORM,无论Hibernate 还是 Apache OJB,都对数据库结构提供了...

    SpringMVC大威天龙.docx

    SpringMVC是Spring提供的一个强大而灵活的Web框架 借助于注解 SpringMVC提供了几乎是POJO的开发模式 使得控制器的开发和测试更加简单 二 SpringMVC优点 1. 角色划分清晰 2. 分工明确 而且扩展相当灵活 3. 和Spring...

    Lombok jar包|lombok-v1.18.4jar.zip

    Lombok 是一种 Java 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注释实现这一目的。通过在开发环境中实现 Lombok,开发人员可以节省构建诸如 hashCode() 、equals()...

Global site tag (gtag.js) - Google Analytics