• λ我爱Aspx >> 数据库 >> 最佳实践:以不变架构应多变业务
  • 最佳实践:以不变架构应多变业务

  • :未知  Դ:csdn  :2007-4-21 18:47:49  ؼ:
  • 图5 GuProposalService GuProposalServiceSpringImpl类图

    ServiceManager.getGuProposalService().insert(guProposalDto);

    首先通过ServiceManager类的get方法来获得该服务接口类,然后通过insert()接口方法完成投保单的保存。方法的具体实现是在服务接口实现类中完成的,系统编码中引用的是接口类,而接口的实现类是由SinoSoftFrame在运行期注入的。接口和实现类的对应关系通过配置文件App-prpall-service.xml定义。

    ● 持久层实现

    持久层主要由两部分构成: 数据访问对象DAO接口及其实现、实体对象PO。业务层通过调用持久层的DAO完成业务对象的持久化(即保存到数据库中)。实体对象PO是和业务模型一致用以完成数据库操作的业务对象,在进行投保单保存时主要有以下实体对象: 投保单主表、投保人及被保险人对象、投保费用。

    系统框架要求实体对象必须遵从如下要求: 每个实体对象都必须继承于自身的实体Base类(该实体Base类是通过工具自动生成的);为实体对象增加不需要持久化的扩展属性时,在实体对象中增加; 严格保持Base类与数据业务模型(即数据库结构)的一致。

    Hibernate完成业务对象的持久化是通过hbm配置文件将对象属性和数据库表中的字段对应来自动完成的,因此配置文件hbm是不可缺少的(可以由工具自动生成)。

    持久层DAO的设计模式和业务层类似,也是将接口和实现分开实现了持久层的解耦。接口类中定义了每个业务对象的持久化操作,实现类中实现了具体的持久化实现代码。通过持久层的解耦,有效地解除了应用系统对SinoSoftFrame中引用的持久层框架的依赖,同时更有效地支持了各种存储形式,包括自定义的存储方式。

    通过类图可以看到,每个持久化对象都会对应一套DAO对象(该套DAO可以通过工具自动生成)。如果需要编写自定义的数据库操作,可以在DAO的接口和实现层中进行扩展(不需要修改DAOBase类)。可以看到,只需调用Dao层的insert方法即可将投保单持久化对象保存到数据库中。

    CSDN声明:此消息系转载自CSDN合作媒体,其中细节未经CSDN证实,特此声明

    Ҷƪл˵?
  • һƪ惠普改进UNIX安全和虚拟技术 提高安腾性能
    һƪGoogle代码搜索:漏洞的汇集?