SSM整合文档
SSM整合文档 v2
一. 文件说明
文件名 | 描述 |
---|---|
spring-servlet.xml | 配置SpringMvc框架相关 |
applicationContext.xml | 配置Spring容器 |
spring-mybatis.xml | 引入并整合mybatis |
二.引入Jar包
包名称 | 描述 |
---|---|
spring-web | 是webmvc的依赖包,提供很多Servlet的实现 |
junit | 测试包 |
spring-webmvc | Spring提供的MVC , 比较重要的一部分 |
spring-tx | spring 的事务管理器 |
spring-jdbc | spring 对jdbc的封装包 |
aspectjweaver | 切面支持 |
mybatis | mybatis框架 |
mybatis-spring | mybatis和spring整合 |
jstl | jsp的一种表达式 |
mysql-connector-java | mysql连接数据库驱动 |
log4j | 日志包 |
slf4j-api | 日志包,对于log4j的封装 |
c3p0 | 数据连接池 |
junit | 单元测试 |
spring-text | 对Junit等测试框架的简单封装 |
包只有一部分解释,自学者不要带包上面浪费时间
三. 配置步骤
1. web.xml
项目配置从无到有,从外到内
1.1 编码过滤器CharacterEncodingFilder
<display-name>Archetype Created Web Application</display-
<!--配置请求过滤器,设置编码过滤器-->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.Characte
<!--设置默认编码格式-->
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<!--强制将请求编码格式转为encoding,无论它原本是不是encoding的格式-->
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
1.2 Mvc核心控制器DispatcherServlet
<!--配置SpringMvc的核心控制器-->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--指定spring-mvc的配置文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:spring/需要一个专门配置mvc的配置文件,该配置文件存放初始DispatcherServlet 的信息参数
</param-value>
</init-param>
<!--加载级别-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
这个地方url-pattern 表示拦截的请求获取,*.do表明获取所有,do结尾的请求,这些请求被拦截进入DispatcherServlet中
1.3 初始化Spring容器 配置监听ContextLoaderListener
- 引入配置Spring配置文件路径
<!--配置Spring监听器-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/spring-*.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
2.applicationContext.xml
该配置文件用于初始化Sprng容器
2.1扫描service层,用于处理业务,装配业务bean
<context:component-scan base-package="com.lh.service.impl"/>
2.2配置全局数据源
Spring容器中配置数据源
<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driverClass}"/>
<property name="url" value="${jdbc.jdbcUrl}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
3. spring-mybatis.xml 整合
3.1 将mybatis的SqlSessionFactory交给Spring管理
<!--SqlSessionFactory交给Spring-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="druidDataSource"/>
<property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>
<property name="typeAliasesPackage" value="com.lh.entity"/>
<property name="mapperLocations" value="classpath:mybatis/mapper/**/*.xml"/>
</bean>
- datasource 数据源,引用先前在Spring中配置好的
- configLocation 配置文件,有一些配置没有完全从mybatis中移植过来,所以需要将那些没有整合到spring中的配置信息通过mybatis-config.xml引入到spring中
3.2 将 做映射,将Java接口代码交给Spring,Spring去做映射
<!--把mapper接口交给spring管理-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
<property name="basePackage" value="com.lh.dao"/>
</bean>
4.spring-servlet.xml 配置DispatcherServlet
4.1 配置扫描Action包
<context:component-scan base-package="com.lh.action"/>
4.2 配置 处理映射器,处理适配器,视图解析器
<!--mvc视图解析器-->
<mvc:annotation-driven/>
<!--mvc注解驱动-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp"/>
<property name="suffix" value=".jsp"/>
</bean>
这里视图解析器中的配置,表名Controller层默认请求的资源路径
4.3 静态资源释放器
<mvc:default-servlet-handler/>
只要请求符合在web.xml中配置的过滤选项,该请求就会进入DispatcherServlet中,设置资源释放器,DispatcherSevlet会分辨出 访问静态资源的请求,并寻找指定静态资源进行访问
5. 配置事务管理器
三个大牛逼接口
5.1 配置事务管理器 PlatformTransactionManager
- DataSourceTransactionManager是事务管理器的一个实现类
将数据源交给事务管理器,这样我们实际获取到的数据源是来自于事务管理器的
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="druidDataSource"/>
</bean>
5.2 配置事务通知
有的业务需要事务,有的业务不需要事务,但是数据来源都是走的事务管理器
为什么叫做通知呢, 通知是AOP里面的名词, 需要通过切面的方式去装饰那些需要事务管理的业务
<tx:advice transaction-manager="transactionManager" id="txadvice">
<tx:attributes>
<tx:method name="find*" read-only="true"/>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
5.3 切点通知增强
aop:config :表示定义一个切面
aop:pointcut : 定义一个切点, (也就是要被修饰, 增强的方法)
aop:advisor: 将指定的 增强方法 和 需要被增强的 方法 相关联
<aop:config>
<aop:pointcut id="pt" expression="execution(* com.lh.service.impl.*.*(..))"/>
<!--将其诶单和通知增强关联-->
<aop:advisor advice-ref="txadvice" pointcut-ref="pt"/>
</aop:config>
SSM整合文档的更多相关文章
- 【转】odoo学习之:API整合文档
Odoo8.0新API文档 一.新API概述 在8中,api接口分为traditaional style和record style,traditional style指的就是我们在7中使用的类型,de ...
- 怎么把jdk和jRE的Javadoc文档整合到MyEclipse
有时在写代码时,需要查看javadoc文档,便于编写程序.故如何把Javadoc文档整合到MyEclipse,以便于查看呢? 解决办法: 1.在MyEclipse中菜单栏的“Windows”---&g ...
- hbase0.96与hive0.12整合高可靠文档及问题总结
本文链接:http://www.aboutyun.com/thread-7881-1-1.html 问题导读:1.hive安装是否需要安装mysql?2.hive是否分为客户端和服务器端?3.hive ...
- 【Lucene3.6.2入门系列】第14节_SolrJ操作索引和搜索文档以及整合中文分词
package com.jadyer.solrj; import java.util.ArrayList; import java.util.List; import org.apache.solr. ...
- SpringBoot整合Swagger2,再也不用维护接口文档了!
前后端分离后,维护接口文档基本上是必不可少的工作.一个理想的状态是设计好后,接口文档发给前端和后端,大伙按照既定的规则各自开发,开发好了对接上了就可以上线了.当然这是一种非常理想的状态,实际开发中却很 ...
- 整合swagger2生成Restful Api接口文档
整合swagger2生成Restful Api接口文档 swagger Restful文档生成工具 2017-9-30 官方地址:https://swagger.io/docs/specificati ...
- 基于WPF系统框架设计(5)-Ribbon整合Avalondock 2.0实现多文档界面设计(二)
AvalonDock 是一个.NET库,用于在停靠模式布局(docking)中排列一系列WPF/WinForm控件.最新发布的版本原生支持MVVM框架.Aero Snap特效并具有更好的性能. Ava ...
- springboot学习-jdbc操作数据库--yml注意事项--controller接受参数以及参数校验--异常统一管理以及aop的使用---整合mybatis---swagger2构建api文档---jpa访问数据库及page进行分页---整合redis---定时任务
springboot学习-jdbc操作数据库--yml注意事项--controller接受参数以及参数校验-- 异常统一管理以及aop的使用---整合mybatis---swagger2构建api文档 ...
- Spring Boot 项目学习 (四) Spring Boot整合Swagger2自动生成API文档
0 引言 在做服务端开发的时候,难免会涉及到API 接口文档的编写,可以经历过手写API 文档的过程,就会发现,一个自动生成API文档可以提高多少的效率. 以下列举几个手写API 文档的痛点: 文档需 ...
随机推荐
- MessFormat的简单使用
MessageFormat用法java.text.MessageFormat 作用:MessageFormat 获取一组对象,格式化这些对象,然后将格式化后的字符串插入到模式中的适当位置. Messa ...
- stl_heap.h
stl_heap.h // Filename: stl_heap.h // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com // Blog: http://b ...
- Convolutional Neural Networks for Visual Recognition 3
Gradient Computing 前面我们介绍过分类器模型一般包含两大部分,一部分是score function,将输入的原始数据映射到每一类的score,另外一个重要组成部分是loss func ...
- freeMarker(十三)——XML处理指南之揭示XML文档
学习笔记,选自freeMarker中文文档,译自 Email: ddekany at users.sourceforge.net 前言 尽管 FreeMarker 最初被设计用作Web页面的模板引擎, ...
- ubuntu 上采用nginx做rtmp 直播 服务器
首先安装必要的依赖库 sudo apt-get install autoconf automake sudo apt-get install libpcre3 libpcre3-dev 安装 ...
- 【C/C++】assert
摘自http://www.cplusplus.com assert : macro #include <assert.h> void assert (int expression); 如果 ...
- ZOJ1610(经典线段树涂色问题)
Description Painting some colored segments on a line, some previously painted segments may be covere ...
- dubbo、dubbox、motan、thrift、grpc等RPC框架比较及选型
概述 前段时间项目要做服务化,所以我比较了现在流行的几大RPC框架的优缺点以及使用场景,最终结合本身项目的实际情况选择了使用dubbox作为rpc基础服务框架.下面就简单介绍一下RPC框架技术选型的过 ...
- Spring整合JUnit4测试时,使用注解引入多个配置文件
转自:https://blog.csdn.net/pwh309315228/article/details/62226372 一般情况下: @ContextConfiguration(Location ...
- LAMP 1.5 测试PHP解析 问题解决
安装完php从新加载了一个模块 php5_module 重新启动模块 /usr/local/apache2/bin/apachectl restart ifconfig 查看本机ip,在浏览器里面输入 ...