最近接触SSM框架(spring、SpringMVC和Mybatis)刚刚学习,了解不深,写这篇文章也只是为最近对框架搭建遇到问题的一个总结,以免日后遇到同样的问题再次纠结,方便自己有可能还会方便他人。我的这篇文章也是自己百度来百度去,最后总结的结果。所以如有雷同纯属巧合,勿喷!
1. 框架知识
首先说一下这三大框架的基本信息(博客标配,百度搜索)
Spring
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。它是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架,其主要的两个特征就是IOC(控制反转)和AOP(面向切面)。
为什么说它轻?
Spring从大小与开销两方面而言都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。
什么是IOC?
IOC,即控制反转(Inversion of Control,英文缩写为IoC),是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。 控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。
什么是AOP?
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程(也叫面向方面),可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。
SpringMVC
SpringMvc是spring的一个模块 基于MVC的一个框架 无需中间整合层来整合 (MVC是一个设计模式 是开发程序的一种解决方案)。
SpringMvc整个的执行流程:
a、发起请求到前端控制器(DispatcherServlet )
b、前端控制器请求HandlerMapping查找Handler(可以根据xml、注解进行查找)
c、处理器映射器HandlerMapping向前端控制器DispatcherServlet 返回Handler
d、前端控制器DispatcherServlet 调用处理器适配器HandlerAdapter 执行Handler
e、处理器适配器HandlerAdapter 执行Handler
f、Handler执行完给处理器适配器返回ModelAndView
g、处理器适配器向前端控制器返回ModelAndView (ModelAndView 是SpringMvc的底层对象 包括model和view)
h、前端控制器请求视图解析器去解析视图
根据逻辑视图名解析成真正的视图(jsp)
i、视图解析器向前端控制器返回view
j、前端控制器进行视图渲染
视图渲染将模型数据(模型数据在ModelAndView对象中)填充到request域
k、前端控制器向用户响应结果
MyBatis
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
三大框架知识都是网上搜集,作为自己理解框架的参考!
2. 开发环境搭建
接下来是开发环境以及Maven的搭建和整合
2.1下载所需工具以及压缩包、jar包
jdk-7u17-windows-x64(jdk 1.7)
myeclipse-pro-2014-GA-offline-installer-windows(MyEclipse 2014)
apache-tomcat-7.0.67-windows-x64(Tomcat 7/8)
apache-maven-3.3.9-bin(maven)
mybatis-generator-core-1.3.2(Mybatis generator代码生成插件 )
SQLFULL_CHS(SqlServer 2008)
sqljdbc4 (SqlServer数据库所需驱动jar包)
如图 : 这些都是我们在搭建ssm框架时会用到的东西
2.2java安装以及环境变量配置
JDK、MyEclipse 2014、SqlServer 2008 都是按步骤直接装就行了,下一步(重复这个动作)至于装到哪个盘里面,就看自己的造化啦。
JDK 装完以后环境变量的配置,千篇一律,但还是要说啊。
打开你的环境变量面板,在系统变量下做以下操作:
1.1新建变量名:JAVA_HOME 变量值:D:\Program Files\Java\jdk1.7.0_17(这是我的jdk安装路径)
1.2编辑变量名:Path 把这一串%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;填到最前或者最后,注意不能少了分号
1.3新建变量名:CLASSPATH
变量值: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar(这里没分号)
设置完以后在命令窗口中进行测试(cmd),分别输入java 、javac 、 java –version。如果配置正确它们都会正常显示的,如下:
如果显示异常,说明没有配置正确。
2.3Maven和Maven仓库的安装配置
首先将你下载的maven压缩包解压到你自己想要它在的路径,我这里将它解压到E盘下的server文件夹下(同时将Tomcat,mybatis-generator也都解压出来了)如图:
将apache-maven-3.3.9-bin 解压完以后就可以配置maven 的环境变量了,Maven也要配环境变量,方法和JDK是一样的。
1 新建变量名:MAVEN_HOME 变量值:E:\server\apache-maven-3.3.9(这是我的MAVEN路径)
2 编辑变量名:Path 在最前面加上:%MAVEN_HOME%\bin;(注意,最后要有个”;”作为分隔符)
同样设置完以后在命令窗口中进行测试(cmd),分别输入mvn –version。如果配置正确它们都会正常显示的,如下:
这样Maven环境就有了,接下来配置Maven仓库(Maven帮我们存放下载jar包的地方)
我们找到MAVEN的安装路径,进入conf–>打开settings.xml。
找到localRepository标签,此时是被注释掉的,我们解除注释,然后配置一个路径,例如:E:/server/MavenRepository/maven_jar,这样以后MAVEN管理下载的jar包都会在这个路径下。
当然我们需要建这样一个目录结构
然后还后将settings.xml复制一份到e:/server/MavenRepository下,这个在与MyEclipse集成时会用到
这样maven 环境就搭好了
2.4配置MyEclipse应用自己的环境
首先打开你的MyElipse ,选择你的工作空间。(我自己搭框架时将不同框架放在不同的工作空间中,我总觉得工作空间的配置可能会互相影响)
进入MyEclipse 以后将自己下的jdk 1.7 和 maven 3.3.9 与MyElipse 开发工具关联起来,这样保证在开发中你所使用的正是你自己想用的环境。不然就会使用MyEclipse 自带的这些东西了。
点window > preferences 在 java 菜单下的 Installed JREs下配置自己的JDK,如下
点击Add添加自己的JDK环境
Finish 完成添加
点window > preferences 在 Myeclipse > Maven4MyEclipse菜单下Installations下配置自己的Maven,如下
点击【确定】后,在Installations页面点击Apply(应用)
在 Myeclipse > Maven4MyEclipse菜单下User Setting下配置用户自己的Maven仓库,如下
找到自己仓库中的settings 文件配置在这里,maven下载的jar包就会下载到你配置的路径里了。
为了不让你的MyEclipse 变卡,以为了能够成功的搭建你的Maven项目,最好将Maven自动更新关掉(取消勾选),如下
你还可以在java > Editor > Content Assist下进行java代码提示的配置。
配置Tomcat
项目开发的时候最好不要是用MyEclipse自带的Tomcat,所以需要配置我们安装好的tomcat。打开window–>preference输入tomcat,按照下图进行配置即可,其他版本的tomcat对应着配置就可以了。
到此开发环境就整合完毕了
3. Maven创建
开发环境搭好了,开始创建项目,整合框架。
创建一个Maven项目
右键 > new > Maven Project
选择新建maven项目所在的工作空间地址,点击Next
在出现的众多的jar包中,选择maven-archetype-webapp(创建一个web项目),点击Next
配置你的项目名称,和项目域名
Group Id: groupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。(摘)
点击Finish 完成maven项目的创建。
刚创建的Maven项目带有红叉,是因为我们对新创建的项目还有没有配置的东西,红叉是正常的。所以第二步就是配置maven项目。
有以下几个需要配置的项:
编码格式
JavaBuildPath
JavaCompiler
ProjectFacets
Javex -java ee jar
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>
解决完这些问题,新建的Maven项目就不报错了。我们就可以在这个项目上搭建SSM框架了。
4. 框架整合
4.1添加jar包
我们先将所有的项目相关的jar全部配置在pom里面。
<!-- 配置各依赖包的版本 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.build.locales>zh_CN</project.build.locales>
<!-- junit -->
<junit.version>4.11</junit.version>
<!-- spring -->
<spring.version>4.0.2.RELEASE</spring.version>
<!-- mybatis -->
<mybatis.version>3.2.6</mybatis.version>
<mybatis.spring.version>1.2.2</mybatis.spring.version>
<!-- sqlServer、mysql -->
<sqljdbc4.version>4.0</sqljdbc4.version>
<!-- JSTL -->
<jstl.version>1.2</jstl.version>
<!-- log4j -->
<slf4j.version>1.7.7</slf4j.version>
<log4j.version>1.2.17</log4j.version>
<!-- -->
<commons.fileupload.version>1.3.1</commons.fileupload.version>
<commons.codec.version>1.9</commons.codec.version>
<commons.net.version>3.3</commons.net.version>
<commons.logging.version>1.1.3</commons.logging.version>
<commons.collections.version>3.2.1</commons.collections.version>
<commons.io.version>2.4</commons.io.version>
<commons.dbcp.version>1.2.2</commons.dbcp.version>
<httpclient.version>4.1.2</httpclient.version>
<!-- -->
<servlet.api.versoin>3.0.1</servlet.api.versoin>
<aspectj.version>1.6.12</aspectj.version>
<netty.version>4.0.18.Final</netty.version>
<jackson.version>1.9.13</jackson.version>
</properties>
<dependencies>
<!-- junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
<!-- spring start -->
<!-- Spring的核心工具包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- SpringWeb下的工具包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- Spring 对Object/XMl的映射支持,可以让Java与XML之间来回切换 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 对JDBC的简单封装 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- spring的面向切面编程,提供AOP(面向切面编程)实现 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- Spring-context的扩展支持,用于MVC方面 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 对Junit等测试框架的简单封装 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- spring end -->
<!-- mybatis start-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis.spring.version}</version>
</dependency>
<!--mybatis end-->
<!-- sqlServer/mysql start -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>${sqljdbc4.version}</version>
</dependency>
<!-- sqlServer end -->
<!-- log start -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- log end -->
<!-- start apache -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${commons.fileupload.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpclient.version}</version>
</dependency>
<!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>${commons.dbcp.version}</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>${commons.codec.version}</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>${commons.net.version}</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>${commons.logging.version}</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>${commons.collections.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons.io.version}</version>
</dependency>
<!-- end apache -->
<!-- jstl -->
<!-- servlet api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlet.api.versoin}</version>
<scope>provided</scope>
</dependency>
<!-- jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>${jstl.version}</version>
</dependency>
<!-- aspectjweaver -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectj.version}</version>
</dependency>
<!-- netty -->
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>${netty.version}</version>
</dependency>
<!-- jackson -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>${jackson.version}</version>
</dependency>
</dependencies>
当所有jar包下载完以后,pom.xml报错:
Missing artifact com.microsoft.sqlserver:sqljdbc4:jar:4.0
这是因为maven下载sqlJdbc4 失败,需要我们自己下载配置。此时就用到刚开始下载的sqljdbc4.jar
首先打开cmd命令窗口,进入到sqljdbc4.jar所在的文件夹中,如图
执行如下命令:(注意大小写)
mvn install:install-file -Dfile=sqljdbc4.jar -Dpackaging=jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0
执行命令后,会哐哐哐下载一堆乱七八糟的东西,你都不用管,你只要看到SUCCESS就代表你成功了
那么接下来右键自己的项目 > Maven4MyEclipse > update Project > OK
此时sqlServer jar包报的错就解决了,我只是说这个错解决了。
当我们将项目Update Project 以后,项目出现了新的错误:
这个是因为项目重新部署后JDK 版本与Dynamic Web Module不匹配的原因
这个问题我是这么理解的,创建项目时web.xml已经建好了,我们虽然更改了ProjectFacets 中Dynamic Web Module的配置和jdk匹配的版本,但是并没有应用到项目中已存在的一些文件中(web.xml)。所以当我们重新部署(Update Project)时,jvm 根据这个项目的配置文件重新配置一遍,发现项目中实际的web.xml与配置中的不一致,但是又不会将原来错的文件删了重新建个新的。所以我们第一步就是的手动将web.xml进行更改
更改后再次Update Project 项目中的所有文件都不报错了,但是项目依然红叉。需要在pom.xml中加入以下代码,这段代码是用来覆盖部分pom默认配置的:
<profiles>
<profile>
<id>jdk-1.7</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.7</jdk>
</activation>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
注意:一定要加到最后
然后再次Update Project 就没有报错了
4.2Spring与MyBatis的整合
4.2.1首先创建 jdbc.properties和log4j.properties文件
jdbc.properties
driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://172.18.61.100;databaseName=asset
username=sa
password=xxxxxxxxxxxxxx
initialSize=0
maxActive=20
maxIdle=20
minIdle=1
maxWait=60000
log4j.properties
log4j.rootLogger=INFO,Console,File
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
log4j.appender.File = org.apache.log4j.RollingFileAppender
log4j.appender.File.File = logs/ssm.log
log4j.appender.File.MaxFileSize = 10MB
log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-d
4.2.2建立spring-mybatis.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">
<!-- 自动扫描 -->
<context:component-scan base-package="com.ssm" />
<!-- 引入配置文件 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties" />
</bean>
<!-- 数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
<!-- 初始化连接大小 -->
<property name="initialSize" value="${initialSize}"></property>
<!-- 连接池最大数量 -->
<property name="maxActive" value="${maxActive}"></property>
<!-- 连接池最大空闲 -->
<property name="maxIdle" value="${maxIdle}"></property>
<!-- 连接池最小空闲 -->
<property name="minIdle" value="${minIdle}"></property>
<!-- 获取连接最大等待时间 -->
<property name="maxWait" value="${maxWait}"></property>
</bean>
<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自动扫描mapping.xml文件 -->
<property name="mapperLocations" value="classpath:com/ssm/mapper/*.xml"></property>
</bean>
<!-- Mapper接口所在包名,Spring会自动查找其下的类 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.ssm.mapper" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>
<!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
4.3SpringMVC整合
4.3.1配置spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">
<!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->
<context:component-scan base-package="com.ssm.controller" />
<!--避免IE执行AJAX时,返回JSON出现下载文件 -->
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
<!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter" /> <!-- JSON转换器 -->
</list>
</property>
</bean>
<!-- 定义跳转的文件的前后缀 ,视图模式配置-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
<!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 默认编码 -->
<property name="defaultEncoding" value="utf-8" />
<!-- 文件大小最大值 -->
<property name="maxUploadSize" value="10485760000" />
<!-- 内存中的最大值 -->
<property name="maxInMemorySize" value="40960" />
</bean>
</beans>
4.3.2、配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>Archetype Created Web Application</display-name>
<!-- Spring和mybatis的配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mybatis.xml</param-value>
</context-param>
<!-- 编码过滤器 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 防止Spring内存溢出监听器 -->
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<!-- Spring MVC servlet -->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<!-- 此处可以可以配置成*.do,对应struts的后缀习惯 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/index.jsp</welcome-file>
</welcome-file-list>
</web-app>
SSM三大框架的整合就完成了,在此基础上可再添加其他功能。
5.测试
本文为个人学习后总结,共同学习,共同进步。参考博文()