【MarketAnalysis总结】2.0搭建Spirng框架、SpringMVC框架以及对SSH框架的集成

首先我先来介绍一下Spring框架,SpringMVC框架以及它们在本项目中的使用,再对搭建SSH框架的详细过程进行说明。


1)   介绍Spring框架以及在本项目的使用

Spring是一个轻量级的应用开发框架,它帮我们管理对象及其依赖关系,还提供像通用日志记录、性能统计、安全控制、异常处理等面向切面的能力。它提供了与第三方数据访问框架(如Hibernate)无缝集成以及一套Spring MVC框架,来方便web搭建 。在此,本项目采用的是SSH(SpringMVC、Spring、Hibernate)集成框架。

Spring框架的组成如下图2.1,


图2.1 Spring框架组成

Spring的关键模块主要是Ioc容器的依赖注入,以及Aop的面向切面模块。

  • Ioc容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖,把依赖关系、逻辑关系、配置等等,和类的具体实现分隔开来,前者对应xml文件,后者对应Java文件。
  • AOP 模块能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任,例如事务处理、日志管理、权限控制等,封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。

在本项目中,主要应用了Spring的Ioc容器、DAO、以及MVC。Ioc容器是Spring的核心,该容器里存放着一个个Bean,本项目通过该容器把DAO、Hibernate以及Service层的依赖关系都集成于此。此外Hibernate是指对数据库访问控制进行集成的一个框架,由于不是我主负责这部分,在此不赘述。

2)   介绍SpringMVC框架以及在本项目中的使用

A.   SpringMVC框架是Spring提供的一个强大而灵活的web框架,它对应着本项目中的controller层。SpringMVC主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、拦截器。它的三个核心是:

  • 处理器映射:选择使用哪个控制器来处理请求,分发请求到某一个方法中去。
  • 视图解析器:选择结果应该如何渲染,可控制页面跳转。
  • 拦截器:对前端请求进行权限校验、身份校验、合法性检查、避免过量请求涌入等操作。

B.   此外,Spring的运行原理如下图2.10


图2.10 SpringMVC运行原理示意图

A.   在本项目中的运行步骤如下:

a)   首先用户发送请求url,web容器根据“/”路径映射到DispatcherServlet(因为url-pattern为/)进行处理;

b)   对springMVC-servlet.xml进行初始化,检查会不会被拦截器拦截下来;若被拦截,对请求进行预处理,处理完过后决定对该请求是否放行,即是否让该请求到达controller;

c)   通过component-scan来对controller的包进行注解扫描,以及DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter进行启动注解功能,对controller进行扫描,找到url对应的控制器;

d)   根据url映射到controller对应的方法进行处理;

e)   处理完毕后,通过视图解析器,根据路径找到要返回的视图,渲染并返回。

B.   对SpringMVC配置xml文件后面会有论述,这里介绍一下前端的请求url怎么配置才能映射到对应处理该请求的控制器。这里有两种配置方法,分为注解法和非注解法:

  • 注解法

配置如图2.11,@Controller写在控制器对应的类的上方,即可表明该类为控制器,@RequestMapping的value属性用来配置某url要映射的方法,如下图,处理“/login”这个url请求对应的方法即为login();


图2.11 注解法配置

每一个注解实则是一个bean,使用注解的优点是可以自动实现bean的依赖注入,无需手动配置bean,使用方便。缺点是不利于代码解耦,耦合度较高,而且会降低代码与依赖关系的可读性。

  • 非注解法

配置如图2.12,这种方法其实更接近本质,它其实是对上一种更深一步解析,因为每一个注解都对应着一个bean。而在这种方法中,就还原了这个bean,每一个url通过bean name来映射到class类中的方法。


图2.12 非注解法配置

这种方法的优点是有利于代码解耦,降低耦合度,主张配置与代码分离,增加了依赖关系的可读性,便于理解项目整体架构。缺点显而易见,就是配置可能会比较繁琐,使用起来没有上一种方法方便。

在本项目中使用了第一种方法,即注解法。

3)   搭建SSH(SpringMVC+Spring+Hibernate)框架过程

搭建此SSH框架最关键是对三个配置文件进行配置,如下图2.2的web.xml、applicationContext.xml、springMVC-servlet.xml。

图2.2 SSH框架配置图

a)   web.xml

在此配置文件中,主要是对spring框架配置监听器以及Controller层的集中统一分发的分发器对每一个url请求都进行统一的分发。它的配置如图2.3,


图2.3 web.xml配置

监听器、分发器分别对应这上图的1、2+3。

b)   applicationContext.xml

该配置文件是spring框架的核心配置文件,主要用来配置Ioc容器的bean之间的依赖关系,进行依赖注入,每一个bean都对应这上面所陈述的一个类。

  • 集成hibernate

使用了两个bean,如下图2.4,


图2.4 Ioc容器中的hibernate配置

主要使用了dataSource与sessionFactory两个bean,把对数据库连接等操作的依赖关系都集成于此。

  • 集成DAO

配置如下图2.5,


图2.5 DAO层的bean配置

这四个bean分别对应着DAO层的增删改查的依赖。

  • 集成Service服务

这里主要对所有Service层提供的服务进行集成,以便Controller使用Service层的服务时,可以从该容器中拿到对应的bean来获取对应的服务。部分Service的bean配置如下图2.6:


图2.6 部分Service层的bean配置

c)   springMVC-servlet.xml

该配置文件主要是对SpringMVC框架进行配置的核心文件,对应着Controller层,主要是对controller和interceptor进行配置;

  • 配置注解扫描器

该配置主要是让controller层接收来自前端的url请求,映射到对应的处理函数中,配置如图2.7所示。


图2.7 注解扫描器配置

  • 配置视图解析器

视图解析器主要是为了controller层能控制页面跳转而使用的,只要为其配置所需跳转页面的路径即可,如图2.8。


图2.8 视图解析器配置

配置拦截器

拦截器主要对应controller的interceptor层,这里的配置所起作用是配置拦截器所要拦截的url,以及对拦截的这些url配置对应的类来处理,部分拦截器配置如图2.9。


图2.9 拦截器部分配置
























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值