前言

    MVC,Spring,三层,他们都是框架,也都有着各自的作用。那如何把这三个框架融合到一个项目中,他们之间的关系是怎样的呢?下面小编主要介绍三个框架各自的特点以及他们之间的关系,具体的搭建过程这里不再说明。


是什么

    MVC,Spring,三层这三个共同的特点都是为了进一步解耦合,提高可扩展性、灵活性。那么他们三个都是在什么角度实现的呢?

MVC

    Model View Controller,即模型(model)-视图(view)-控制器(controller)。主要是使数据与表示分离,也就是model和view能够独立开发,分层清晰,便于扩展,提高可维护性。此应用中他就相当于三层中U层,即进一步解耦合了U层。


三层

    MVC既然充当了U层,那么三层中就剩下B层和D层啦!B层是业务逻辑层,D层是数据访问层。


Spring

    spring主要是可以实现控制反转和依赖注入,主要应用于逻辑复杂的大型项目中,面向对象不能很好得解决问题,所以应用面向切面,针对某个步骤或者阶段,所以应用控制反转和依赖注入,省去了实例化的过程。


配置详解

    首先整个框架的示意图如下:

                                                    

spring boot三层结构代码 spring三层架构案例_实例化

    一、spring框架首先需要引入以上dll文件,分别是log4net.dll,packages.config,Spring.Core.dll,Spring.Web.dll,Spring.Web.Extensions.dll,Spring.Web.Mvc4.dll,Common.Logging.dll,如上图蓝色框框内的dll文件。

   二、Global.asax文件是 ASP.NET的应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法。既然要引入Spring,Global.asax文件就要有响应的修改修改如下:

   1.引入spring.web.mvc

   2.将MvcApplication继承方式由原先的System.Web.HttpApplication更改为 SpringMvcApplication。

   

spring boot三层结构代码 spring三层架构案例_MVC_02

   三、web.config

   IBLL是实现BLL(B层)的接口,IDAL是实现DAL(D层)的接口,所有的实例化都不需要调用者去实例化被调用者,而是一切有spring来进行操作。spring之所以能来进行操作的秘诀就在于上图中三个红框内的xml文件中。调用三个XML文件,我需要在web.config文件进行扩展

   web.config:是一个XML文件,用来储存Asp.net Web应用程序的配置信息,包括数据库连接字符、身份安全验证等,可以出现在Asp.net Web应用程序服务器上的任何目录中,每个Web.config将配置设置应用到它所在的目录及虚拟子目录下,子目录中的设置可以随意重写或修改在父目录中指定的设置。该文件不需要重启服务就可以生效。

  web.config文件中引入:

  

spring boot三层结构代码 spring三层架构案例_实例化_03

   四、而真正实现控制反转和依赖注入正式这三个XML配置文件,下面进行详解:

 

spring boot三层结构代码 spring三层架构案例_spring boot三层结构代码_04

   上图定义了BLL层的id,为ibll,即B层的接口,type后跟的是完整的B层的路径和类型。

   MVC的controller(可以想象成U层)调用B层,不需要实例化,而是写下下述代码:


ibll testIBLL { get; set; }

   

以此完成实例化,调用B层。而property后跟的是子节点,这里B层后要去调D层,所以将idal(即D层的实现接口)写入property中,这里也可以写入某类的属性,由此可以直接进行调用,而且想要有所修改的话直接进行扩展就OK.

    MVC解耦了U层,三层本身就是一种解耦,spring又提供了控制反转和依赖注入,也是进一步解耦合。

    以上就是我对MVC+Spring+三层的架构的配置解析,欢迎交流!