博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring、Spring MVC、MyBatis 整合文件配置详解
阅读量:4101 次
发布时间:2019-05-25

本文共 4721 字,大约阅读时间需要 15 分钟。

大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈)。上次老师跟大家分享了MySQL详细知识点的知识,今天跟大家分享下SSM框架整合文件配置的知识。

使用SSM框架做了几个小项目了,感觉还不错是时候总结一下了。先总结一下SSM整合的文件配置。其实具体的用法最好还是看官方文档。

Spring:http://spring.io/docs

MyBatis:http://mybatis.github.io/mybatis-3/

基本的组织结构和用法就不说了,前面的博客和官方文档上都非常的全面。jar包可以使用Maven来组织管理。来看配置文件。

1 web.xml的配置

web.xml应该是整个项目最重要的配置文件了,不过servlet3.0中已经支持注解配置方式了。在servlet3.0以前每个servlet必须要在web.xml中配置servlet及其映射关系。但是在spring框架中就不用了,因为Spring中是依赖注入(Dependency Injection)的也叫控制反转(Inversion of Control)。但是也要配置一个重要的servlet,就是前端控制器(DispatcherServlet)。配置方式与普通的servlet基本相似。

配置内容如下:

spring org.springframework.web.servlet.DispatcherServlet contextConfigLocation WEB-INF/classes/spring/springmvc.xml spring / 这里需要注意,springmvc.xml是spring配置文件,将在后面讨论。在中url如果是.action,前端控制器就只会拦截以.action结尾的请求,并不会理会静态的文件。对静态页面的控制就要通过其他的手段。以/作为url的话就会拦截所有的请求,包括静态页面的请求。这样的话就可以拦截任何想要处理的请求,但是有一个问题。如果拦截了所有的请求,如果不在拦截器中做出相应的处理那么所有静态的js、css以及页面中用到的图片就会访问不到造成页面无法正常显示。但这可以通过静态资源的配置来解决这个问题。后面会提到。

配置spring容器:

contextConfigLocation WEB-INF/classes/spring/applicationContext-*.xml 其中applicationContext-*.xml包含3个配置文件,是springIoC容器的具体配置。后面会提到。

配置一个监听器:

org.springframework.web.context.ContextLoaderListener web.xml的完整配置是这样的: <?xml version="1.0" encoding="UTF-8"?>

<web-app version=“3.0”

xmlns=“http://java.sun.com/xml/ns/javaee”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

404 /error404.jsp 500 /error500.jsp contextConfigLocation WEB-INF/classes/spring/applicationContext-*.xml org.springframework.web.context.ContextLoaderListener spring org.springframework.web.servlet.DispatcherServlet contextConfigLocation WEB-INF/classes/spring/springmvc.xml spring

看到配置文件中多了两块内容,一个是error page是用来友好的处理错误的,可以使用错误代码来区别并跳转到相应的处理页面。这段配置代码最好放到最前面,在前端控制器拦截之前处理。

还有一块内容是一个解决post乱码问题的过滤器,拦截post请求并编码为utf8。

2 springmvc.xml的配置

视图解析器的配置:

在Controller中设置视图名的时候会自动加上前缀和后缀。

Controller的配置

自动扫描方式,扫描包下面所有的Controller,可以使用注解来指定访问路径。

<context:component-scan base-package=“com.wxisme.ssm.controller”>

也可以使用单个的配置方式,需要指定Controller的全限定名。

配置注解的处理器适配器和处理器映射器: 也可以使用下面的简化配置:

<mvc:annotation-driven conversion-service=“conversionService”></mvc:annotation-driven>

配置拦截器,可以直接定义拦截所有请求,也可以自定义拦截路径。

mvc:interceptors

</mvc:interceptors>

配置全局异常处理器

配置文件上传数据解析器,在上传文件时需要配置。
9242880

还可以配置一些自定义的参数类型,以日期类型绑定为例。

上面提到过如果在配置前端控制器时拦截了所有的请求,不做特殊处理就会导致部分静态资源无法使用。如果是这种情况就可以使用下面的配置来访问静态资源文件。

<mvc:resources mapping="/images/" location="/images/" />

<mvc:resources mapping="/css/" location="/css/" />
<mvc:resources mapping="/js/" location="/js/" />
<mvc:resources mapping="/imgdata/
" location="/imgdata/" />
也可以使用默认,但是需要在web.xml中配置。

完全可以不拦截所有路径,大可避免这个问题的发生。完整的配置大概是这样的,需要注意xml文件的命名空间,有时候会有影响的。

<context:component-scan base-package=“com.wxisme.ssm.controller”>

</context:component-scan>

<mvc:annotation-driven conversion-service=“conversionService”></mvc:annotation-driven>

9242880

applicationContext-*.xml的配置

applicationContext-*.xml包括三个配置文件,分别对应数据层控制、业务逻辑service控制和事务的控制。

数据访问层的控制,applicationContext-dao.xml的配置:

配置加载数据连接资源文件的配置,把数据库连接数据抽取到一个properties资源文件中方便管理。

配置为:

<context:property-placeholder location="/WEB-INF/classes/jdbc.properties"/>

其中jdbc.properties文件的内容如下:配置内容如下:

jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/databasejdbc.username=rootjdbc.password=1234

配置数据库连接池,这里使用的是dbcp,别忘了添加jar包!

3 Spring和MyBatis整合配置,jar包由MyBatis提供

配置sqlSessionFactory

SqlMapConfig.xml文件是MyBatis的配置文件,后面会提到。

配置Mapper扫描器,扫描mapper包下的所有mapper文件和类,要求mapper配置文件和类名需要一致。

整个applicationContext-dao.xml配置文件应该是这样的:

<context:property-placeholder location="/WEB-INF/classes/jdbc.properties"/>

业务逻辑控制,applicationContext-service.xml的配置:

这个文件里暂时只需要定义service的实现类即可。

事务控制,applicationContext-transaction.xml的配置

配置数据源,使用JDBC控制类。

配置通知,事务控制。

配置AOP切面

整个事务控制的配置是这样的:

4 MyBatis的配置

SqlMapConfig.xml的配置 全局setting配置这里省略,数据库连接池在spring整合文件中已经配置,具体setting配置参考官方文档。

别名的定义:

mapper映射文件的配置: 整个文件的配置应该是这样的: <?xml version="1.0" encoding="UTF-8"?> 具体mapper文件的配置,在使用mapper代理的方法时,命名空间需要是对应的Mapper类。 <?xml version="1.0" encoding="UTF-8" ?> 以上只是对SSM框架简单使用时的配置文件,如果需要深入使用或者需要理解其内部机理需要参考官方文档和其源代码。

原文:https://mp.weixin.qq.com/s/A3rWXwp4ZTM1UD00oJIx3Q作者:java研发军团来源:微信公众号

免费分享java技术资料,需要的朋友可以关注后私信免费获取

Spring、Spring MVC、MyBatis 整合文件配置详解

Spring、Spring MVC、MyBatis 整合文件配置详解

转载地址:http://tyusi.baihongyu.com/

你可能感兴趣的文章
《读书笔记》—–书单推荐
查看>>
【设计模式】—-(2)工厂方法模式(创建型)
查看>>
有return的情况下try catch finally的执行顺序(最有说服力的总结)
查看>>
String s1 = new String("abc"); String s2 = ("abc");
查看>>
JAVA数据类型
查看>>
Xshell 4 入门
查看>>
SoapUI-入门
查看>>
Oracle -常用命令
查看>>
JAVA技术简称
查看>>
ORACLE模糊查询优化浅谈
查看>>
2016——个人年度总结
查看>>
2017——新的开始,加油!
查看>>
【Python】学习笔记——-6.2、使用第三方模块
查看>>
【Python】学习笔记——-7.0、面向对象编程
查看>>
【Python】学习笔记——-7.1、类和实例
查看>>
【Python】学习笔记——-7.2、访问限制
查看>>
【Python】学习笔记——-7.3、继承和多态
查看>>
【Python】学习笔记——-7.4、获取对象信息
查看>>
【Python】学习笔记——-7.5、实例属性和类属性
查看>>
高通安卓调试LCD几方面总结(一)
查看>>