`
碧海山城
  • 浏览: 192933 次
  • 性别: 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
分享到:
评论

相关推荐

    JDBCTemplate+JavaPOJO实现通用DAO

    在Java开发中,数据访问对象(DAO)模式是一种常见的设计模式,用于封装对数据库的操作,使得业务逻辑与数据访问逻辑分离。JDBC(Java Database Connectivity)是Java平台中用于访问数据库的标准API,但它直接使用...

    Feign发送Get请求时,采用POJO对象传递参数的最终解决方案.docx

    然而,在实际开发过程中,Feign并非完全无懈可击,开发者经常会遇到各种各样的问题,其中最常见的问题之一就是使用POJO对象传递参数时发生的请求方式冲突问题。 #### 问题描述 在使用Feign客户端发送GET请求时,...

    POJO Application Frameworks_ Spring Vs. EJB 3

    )这反映了企业软件开发的一个核心理念:通过提供一个能隐藏复杂性(如事务处理、安全性和持久化)的应用框架,使得开发者能够专注于真正重要的问题,从而简化软件开发过程。然而,J2EE 1.4中的EJB 2.1框架因其设计...

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

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

    ibatis 开发指南

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

    Java框架开发

    SpringMVC作为Spring框架的一个重要组成部分,自发布以来已经历经十多个年头,依然是业界最受欢迎的Java Web开发框架之一。它不仅是一个功能全面的MVC框架,还提供了一系列针对Web应用程序的安全配置和强大的工具包...

    Kotlin是一种由JetBrains公司开发的静态类型编程语言,旨在简化现代多平台应用的开发过程 以下是关于Kotlin的50

    自从2011年首次发布以来,Kotlin凭借其一系列创新特性迅速获得了广泛的认同,尤其是在Android开发领域,Kotlin已成为Android官方推荐的开发语言之一。 #### 二、Kotlin的关键特性 ##### 1. **空安全设计** - **...

    阿里巴巴Java开发手册v1.2.0_1595390177.docx

    《阿里巴巴Java 开发手册》通过一系列明确而实用的规约,帮助开发者在编码过程中遵循最佳实践,提高软件质量和开发效率。这些规约不仅涵盖了编程本身,还包括了数据库设计、异常处理、日志记录等多个方面,旨在帮助...

    EJB3.0开发手册

    - **实体Bean的改进**:实体Bean采用了POJO模型,意味着一个简单的Java Bean就可以成为一个实体Bean,无需依赖容器即可运行和测试。 - **O/R Mapping**:全面采用O/R Mapping技术实现数据库操作,提高了灵活性和...

    阿里巴巴java开发规范高清版pdf

    在具体命名风格上,类名采用UpperCamelCase(大驼峰式命名),而方法名、参数名等使用lowerCamelCase(小驼峰式命名),有助于提高代码的阅读性和易懂性。常量则全部使用大写字母,单词之间用下划线分隔。 在OOP...

    开发JPA应用.pdf

    - 支持**POJO**(Plain Old Java Object,普通的Java对象)风格的开发,使得代码更加简洁明了。 - 规范化的API设计确保了不同JPA实现之间的高度兼容性。 #### 2. MyEclipse支持下的JPA开发 - **MyEclipse**是一...

    阿里巴巴开发规范.docx

    **强制规定**:类名采用`UpperCamelCase`风格,即驼峰式大写,但某些特殊情况下除外,例如领域模型中的DO(Data Object)、BO(Business Object)、DTO(Data Transfer Object)、VO(View Object)等。 **正例**:...

    oracle ADF 开发指南

    - 对于高级的J2EE开发者来说,如果他们倾向于使用EJB会话Bean、POJO类、O/R映射等技术,则可能会发现本书提供的开发方式不是最理想的。对于这类开发者,Oracle提供了另一种基于ADF的开发指南,该指南更加侧重于如何...

    jsp网页开发教程.zip

    JSP是Java平台上的一个重要技术,用于创建动态网页,它结合了Java编程语言的强大力量和HTML的易用性,使得开发人员可以方便地构建交互式、数据驱动的Web应用。 **JSP核心概念** 1. **JSP页面结构**:JSP页面由静态...

    Spring+3.x企业应用开发实战-高清带目录正版

    Spring的核心特性包括了依赖注入(DI)、面向切面编程(AOP)以及基于POJO的轻量级和最小侵入式编程模型。 2. **企业级应用**:通常指的是需要处理大量数据和业务逻辑,同时要求高可用性、安全性和可伸缩性的应用...

    bs模式java开发课件

    9. **前端框架**:如Bootstrap、Angular、Vue.js等,可以快速构建响应式、移动优先的Web界面,提高开发效率。 10. **安全机制**:包括身份验证(Authentication)和授权(Authorization),防止未授权访问。Spring ...

    JAVA项目开发规范

    - **括号**:始终使用外扩式,即使括号内只有一个语句。 通过制定和执行JAVA项目开发规范,可以显著提高软件开发过程中的效率和质量,减少后期维护成本,同时促进团队成员之间的沟通与协作,确保项目顺利进行。这些...

    Spring面试题 75道.pdf

    Spring设计目标:Spring为开发者提供一个一站式轻量级应用开发平台; Spring设计理念:在JavaEE开发中,支持POJO和JavaBean开发方式,使应用面向接口开发,充分支持OOP(面向对象)设计方法; Spring框架的核心:...

Global site tag (gtag.js) - Google Analytics