MVC模式和Maven项目构建

1、    尽管Servlet + JSP可以完成全部的开发工作,但是代码耦合度高、可读性差、重用性不好,维护、优化也不方便。所以才有了MVC。

         MVC是当前WEB开发的主流模式,核心是使用Struts、SpringMVC等框架管理URL映射、调度服务层和视图层。

2、    Struts、SpringMVC等控制层框架可以实现服务层、视图层的调度,而且我们的想法是让它们只负责做这些工作。

         但是,在请求中包含了参数的情况下,如:多条件查询数据列表。

         是不是需要在控制器里面获取请求参数呢?传统的方式是这样的。

         如果添加或者删除某个查询条件,我们就需要去修改控制器代码。

         有一个较好的解决方案:在控制器之前添加Filter或者Interceptor,在里面获取请求参数并封装查询参数对象(Map、List或者自定义对象)存放到值栈或Request域,然后在控制器中获取这个查询参数对象,再调用service时传入即可。

         进一步,还可以把这些Filter或者Interceptor封装成单独的jar包,在WEB应用中配置依赖。

3、    使用MVC模式开发的同时配合使用“面向接口编程(多态)”可以大大降低组件之间的耦合性。

         组件之间使用接口对象对接,通过Spring文件配置或注解扫描把实际使用的组件实现类对象管理起来,然后把实现类对象注入到调用组件。

         在之后的升级或者维护中,如果需要整体修改组件实现,只要替换组件实现类的jar文件,而不需要修改调用组件的任何代码。

4、    可以使用maven解决依赖问题,这可以让模块化的分层架构更加清晰、组件之间的耦合页更低。

         简单的模块划分大致如下:实体类、dao层、dao层实现类、service层、service层实现类、WEB应用

         

         其实核心的模块就是:实体类、dao层、service层、WEB应用

         之间的依赖关系(黑色线表示)如下:

         

         在后期优化、升级过程中,如果我们使用Mybatis实现DAO层,我们只需要:

    • 使用Mybatis编写DAO层的实现类
    • 添加spring的配置文件
    • 制作jar包,上传到maven服务器
    • 把WEB层的hibernate dao依赖改成mybayis dao实现

         这样我们就完成DAO层实现类的修改,其余的模块代码不需要任何修改

原文地址:https://www.cnblogs.com/xugf/p/8672369.html