杂谈spring、springMVC

一、背景

目前项目组都在用SSM(spring+springMVC+mybatis)开发项目

大家基本都停留在框架的基本使用阶段,对框架的职责并不清晰,导致配置文件出现了不少问题

在这简单讲解一下spring、springMVC在项目中各自负责的工作

二、spring、springMVC的关系

spring粗略可分为五个模块

1、bean容器,负责bean的创建、管理,其中包括了依赖注入功能

2、aop模块,切面编程,降低应用耦合的好方式

3、数据访问与集成,提供语义丰富的异常层(可迅速理解数据库操作抛出的错误),提供事务管理,JMS封装

4、web和远程调用,集成了其它MVC框架并提供了自己的MVC框架(springMVC),集成RMI等远程服务调用服务,并自带了远程调用框架(HTTP invoker)

5、测试

由spring的模块划分可看到

在代码层次上:springMVC属于spring代码的一部分

在实际使用中:springMVC被独立为一个jar包,如不引用,将没有这个功能

故,可以将其看作两个类库

三、项目中主要用到的spring、springMVC功能

项目中主要用到的spring功能:

1、依赖注入(这里包括了bean的创建)

2、aop编程

3、事务管理

项目中主要用到的springMVC的功能:

1、创建控制器类

2、请求映射,根据URI(可不负责任的理解为相对路径)调用相应的action

3、数据绑定,如表单数据绑定为action参数

4、解析视图,向视图传递数据

项目中主要用到的spring功能和springMVC功能有重合部分

spring创建了所有的bean,包括控制器类,而springMVC也要创建控制器类

这里处理不好将会出现创建两次bean的情况,严重则会出现aop、事务失效

四、正确的spring、springMVC配置

spring负责bean的创建(@controller除外),bean依赖的管理、aop、事务、ORM的集成

故配置文件applicationContext.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:task="http://www.springframework.org/schema/task"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

    <!-- 加载系统配置文件 -->
     <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:property/init.properties</value>
            </list>
        </property>
    </bean>

    <!-- 自动检测bean.不包括@Controller(交由mvc检测) -->
    <context:component-scan base-package="com.xjyh" >
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
    </context:component-scan>

    <!-- 开启AOP -->
    <aop:aspectj-autoproxy expose-proxy="true"/>

    <!-- mybtis配置 -->
    <import resource="spring-mybatis.xml"/>

    <!-- 对数据源进行事务管理,数据源配置在spring-mybatis.xml中 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>

    <!-- 配置注解事务 -->
    <tx:annotation-driven transaction-manager="transactionManager" />

</beans>

而springMVC,负责了创建控制器类、请求映射、数据绑定、解析视图、向视图传递数据

时间: 2024-10-16 01:02:24

杂谈spring、springMVC的相关文章

基于Spring+SpringMVC+Mybatis的Web系统搭建

主要的后端架构:Spring+SpringMVC+Mybatis+Shiro+Maven  IDE:IntelliJ IDEA 15.0.2 jdk:1.8.0_66 系统完整源码 https://github.com/Wellat/Factor 系统目录结构 跑起来效果 搭建步骤 1.用Idea创建maven项目 2.配置pom.xml文件,添加依赖 1 <?xml version="1.0" encoding="UTF-8"?> 2 <proj

SSM框架 (Spring+SpringMVC+MyBatis)

SSM框架--详细整合教程(Spring+SpringMVC+MyBatis) springspringmvcmybatis整合教程ssm整合 1.基本概念  1.1.Spring          Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来.它是为了解决企业应用开发的复杂性而创建的.Spri

spring(一)--spring/springmvc/spring+hibernate(mybatis)配置文件

这篇文章用来总结一下spring,springmvc,spring+mybatis,spring+hibernate的配置文件 1.web.xml 要使用spring,必须在web.xml中定义分发器等信息,基本的配置信息如下: <?xml version="1.0" encoding= "UTF-8"?> <web-app version= "3.0" xmlns="http://java.sun.com/xml/n

SSM框架整合(Spring+SpringMVC+MyBatis)

[SSM的系统架构] [整合概述] 第一步: MyBatis和Spring整合,通过Spring管理mapper接口. 使用mapper的扫描器自动扫描mapper接口在Spring中进行注册. 第二步: 通过Spring管理Service接口. 使用配置方式将Service接口配置在Spring配置文件中. 实现事务控制. 第三步: 由于SpringMVC是Spring的模块,无需整合这两个. [工程截图] [数据库的items] [ 表结构 ] [ 表内数据 ] [1.整合dao]将Myba

Spring+SpringMVC+MyBatis+easyUI整合基础篇(二)牛刀小试

承接上文,该篇即为项目整合的介绍了. 废话不多说,先把源码和项目地址放上来,重点要写在前面. github地址为ssm-demo 你也可以先体验一下实际效果,点击这里就行啦 账号:admin 密码:123456 从构思这个博客,一直到最终确定以这个项目为切入点,中间也是各种问题出现,毕竟是新人,所以也是十分的小心,修改代码以及搬上github其实花了不少时间,但也特别的认真,不知道是怎么回事,感觉这几天的过程比逼死产品经理还要精彩和享受.或许是博客路上的第一站吧,有压力也有新奇,希望自己能坚持下

Spring+SpringMVC+MyBatis+LogBack+C3P0+Maven+Git小结(转)

摘要 出于兴趣,想要搭建一个自己的小站点,目前正在积极的准备环境,利用Spring+SpringMVC+MyBatis+LogBack+C3P0+Maven+Git,这里总结下最近遇到的一些问题及解决办法,后续慢慢的继续补~ 目录[-] 一:建立一个Maven结构的Web工程 二:Spring.SpringMVC重复加载bean对象问题. 三:实现自个的数据缓存机制 2种缓存数据简介及其数据结构分析 2中缓存数据加载实现流程介绍 三:通过Spring自定义标签形式实现配置项类型数据的缓存数据结构

dubbo+zookeeper+spring+springMVC+mybatis的使用

读前声明:由于本人水平有限,有错误或者描述不恰当的地方请指出来,勿喷!第一次写博客. 源码下载链接:http://files.cnblogs.com/files/la-tiao-jun-blog/dubbo%E4%BE%8B%E5%AD%90.rar 使用条件: eclipse-jee-luna-SR2-win32-x86_64 jdk1.7,Apache Tomcat v8.0,maven zookeeper3.4.6 dubbo-2.4.10 dubbo-monitor-simple-2.5

Spring+SpringMVC+Mybatis+Mysql整合实例【转】

本文要实现Spring+SpringMVC+Mybatis+Mysql的一个整合,实现了SpringMVC控制访问的页面,将得到的页面参数传递给Spring中的Mybatis的bean类,然后查找Mysql数据的功能,并通过JSP显示出来.建议可以先看笔者另一文章Mybatis与Spring整合创建Web项目 .笔者觉得整合过程中问题比较多的还是Spring+Mybatis的整合,SpringMVC的整合还是比较简单. Spring        Spring 是一个开源框架, Spring 是

Spring+SpringMVC+MyBatis框架的搭建

1,SSM的简介 SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. 其中spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架. SpringMVC分离了控制器.模型对象.分派器以及处理程序对象的角色,这种分离让它们更容易进行定制. MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架. 2,SSM的搭建 项目的结构如下: 首先配