美文网首页Java学习笔记
传统的Web单工程项目进行改造(基础篇)

传统的Web单工程项目进行改造(基础篇)

作者: ylcoder | 来源:发表于2017-08-25 10:49 被阅读47次

    声明

    通过对吴水成老师dubbo教程的学习,本人以理解学习的角度向大家分享,希望能帮助到大家。本文中若存在不足,请大家积极留言互动。源码

    介绍

    当项目达到一定的规模时,传统的Web单工程项目实现复杂的业务就显得很臃肿。若需要对业务进行服务化的拆分,那就需要使用分布式应用系统开发。

    Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,是一个分布式、高性能、透明化的RPC服务框架,提供服务自动注册、自动发现等高效服务治理方案。

    本文将从使用Dubbo对传统工程进行服务化改造的思路介绍,最终形成一套可应用于生产环境的高性能、高可用、高扩展性的分布式系统架构。希望帮助大家将Dubbo在实际项目中应用起来。

    本文中所用到的技术:MyEclipse、Maven、JDK7、Dubbo2.5.3、Struts2、Spring3、MyBatis3.2、Druid、ActiveMQ、Tomcat7、MySQL5.6、VMWare、CentOS6.5

    项目架构对比

    1.传统的单项目工程(oa-demo)

    使用MVC架构式的方式组织代码结构,Model View Controller,是模型(model)-视图(view)-控制器(controller)。

    优点:分层,结构清晰,耦合性低,大型项目代码的复用性得到极大的提高,开发人员分工明确,提高了开发的效率,维护方便,降低了维护成本。

    缺点:简单的小型项目,使用MVC设计反而会降低开发效率,层和层虽然相互分离,但是之间关联性太强,没有做到独立的重用。

    2.改造成dubbo服务调用方式后的工程结构(多工程模式)

    oa-common-parent(Maven父配置)【java maven工程】

    oa-facade(门面服务模式接口)【java maven工程】

    oa-service(业务服务实现)【java web maven工程】

    oa-web(前端展示层)【java web maven工程】

    使用dubbo是为了实现系统的分布式服务化,具有以下特点:

    1)多个服务

    2)多种类型的工程

    3)工程间需要相互调用

    4)实现工程间解耦(高内聚、低耦合)

    5)工程该怎么样拆分?(请思考)

    6)如何对大量的工程进行合理有效的管理?(高级篇:持续集成)

    项目改造思路

    1.oa-demo中业务逻辑层以下的做成dubbo的服务接口,供action层调用。

    2.oa-web中的action不能直接访问oa-service中的实现,只能引用oa-facade工程。

    3.oa-facade对oa-service中的服务进行包装成facade接口。

    4.oa-service对oa-facade中的接口进行实现。调用业务逻辑biz接口。

    5.oa-web引用oa-facade中的facade层接口。

    6.mybatis的配置文件移动到oa-service中。

    7.spring的配置文件移动到oa-service和oa-web中。

    基于dubbo进行改造

    1.在oa-service中添加spring-dubbo-provider.xml配置。【暴露服务】

    2.在oa-web中添加dubbo-consumer.xml配置。【引用服务】

    相关文章

      网友评论

        本文标题:传统的Web单工程项目进行改造(基础篇)

        本文链接:https://www.haomeiwen.com/subject/kpaydxtx.html