SSM集成框架——测试实例

Spring、SpringMVC与MyBatis集成

一、框架搭建流程

(一)拷贝相关jar包到工程目录

当前工程使用的JAR包,具体使用版本会有所区别

aopalliance-1.0.jar
aspectj-1.6.12.jar
aspectjweaver-1.6.2.jar
cglib-nodep-2.2.3.jar
commons-dbcp-1.4.jar
commons-logging-1.1.1.jar
commons-pool-1.6.jar
jquery-3.3.1.js
log4j-1.2.16.jar
mybatis-3.2.6.jar
mybatis-spring-1.3.2.jar
mysql-connector-java-5.1.20-bin.jar
org.springframework.aop-3.0.5.RELEASE.jar
org.springframework.asm-3.0.5.RELEASE.jar
org.springframework.aspects-3.0.5.RELEASE.jar
org.springframework.beans-3.0.5.RELEASE.jar
org.springframework.context-3.0.5.RELEASE.jar
org.springframework.context.support-3.0.5.RELEASE.jar
org.springframework.core-3.0.5.RELEASE.jar
org.springframework.expression-3.0.5.RELEASE.jar
org.springframework.instrument-3.0.5.RELEASE.jar
org.springframework.instrument.tomcat-3.0.5.RELEASE.jar
org.springframework.jdbc-3.0.5.RELEASE.jar
org.springframework.jms-3.0.5.RELEASE.jar
org.springframework.orm-3.0.5.RELEASE.jar
org.springframework.oxm-3.0.5.RELEASE.jar
org.springframework.test-3.0.5.RELEASE.jar
org.springframework.transaction-3.0.5.RELEASE.jar
org.springframework.web-3.0.5.RELEASE.jar
org.springframework.web.portlet-3.0.5.RELEASE.jar
org.springframework.web.servlet-3.0.5.RELEASE.jar
org.springframework.web.struts-3.0.5.RELEASE.jar
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.1.jar

(二)整合SpringMVC

1 . 配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>ssm001</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  
  <!-- 配置前端控制器DispatcherServlet -->
  
  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  
  <!-- 配置编码过滤器 -->
  <filter>
  	<filter-name>CharacterEncodingFilter</filter-name>
  	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  	<init-param>
  		<!-- 配置编码格式 -->
  		<param-name>encoding</param-name>
  		<param-value>UTF-8</param-value>
  	</init-param>
  </filter>
  <filter-mapping>
  	<!-- 配置过滤范围 -->
  	<filter-name>CharacterEncodingFilter</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>
  
</web-app>

2 . 配置springmvc-servlet.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:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" 
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
	http://www.springframework.org/schema/mvc 
	http://www.springframework.org/schema/mvc/spring-mvc-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/aop 
	http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
	http://www.springframework.org/schema/tx 
	http://www.springframework.org/schema/tx/spring-tx-3.0.xsd ">

	<!-- springmvc注解驱动 -->
	<mvc:annotation-driven/>
	
	<!-- springmvc的扫描器 -->
	<context:component-scan base-package="com.pmzeroa.controller" />
	
	<!-- 配置默认的方法映射器 -->
	<bean id="handlerMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
	<bean id="Adapter" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
	
	<!-- 配置视图解析器 -->
	<bean
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<!-- 前缀 -->
		<property name="prefix" value="/"></property>
		<!-- 后缀 -->
		<property name="suffix" value=".jsp"></property>
	</bean>

</beans>

3 . 编写测试类进行测试

package com.pmzeroa.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class TestController {
   
	
	@RequestMapping("/test.do")
	public String test() {
   
		
		System.out.println("-----我是控制器-----");
		
		return "index";
		
	}
}

4 . 编写index.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PMZeroA</title>
</head>
<body>
	<a href="test.do">SpringMVC测试</a>
</body>
</html>

测试演示

在这里插入图片描述


(二)配置MyBatis

1 . 创建MyBatis主配置文件mybatis.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<!--  -->
	<typeAliases>
		<typeAlias type="com.pmzeroa.po.UserInfo" alias="userInfo"/>
	</typeAliases>
	<mappers>
		<mapper resource="com/pmzeroa/mapper/userinfo.xml"/>
	</mappers>
</configuration>

2 . 配置Spring主配置文件applicationContext.xml

  • 配置数据源信息
  • 创建SqlSessionFactory实例
    • 指定数据源
    • 指定MyBatis主配置文件
  • 事务配置
  • 配置事务处理方式
  • 配置参与事务的类:AOP
<?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:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" 
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
	http://www.springframework.org/schema/mvc 
	http://www.springframework.org/schema/mvc/spring-mvc-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/aop 
	http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
	http://www.springframework.org/schema/tx 
	http://www.springframework.org/schema/tx/spring-tx-3.0.xsd ">
	
	<!-- 配置注解驱动 -->
	<context:component-scan base-package="com.pmzeroa.service"></context:component-scan>
	
	<!-- 配置数据源信息 -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
		<property name="url" value="jdbc:mysql://localhost:3306/anubis"/>
		<property name="username" value="root"/>
		<property name="password" value="/"/>
	</bean>
	
	<!-- 创建SqlSessionFactory实例 -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- dataSource属性指定需要的数据源 -->
		<property name="dataSource" ref="dataSource"/>
		<!-- configLocation属性指定mybatis主配置文件 -->
		<property name="configLocation" value="classpath:mybatis.xml"/>
	</bean>
	
	<!-- 映射接口basePackage指定需要扫描的包及其子包下的所有映射器接口都会被搜索 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.pmzeroa.mapper"></property>
	</bean>
	
	<!-- 事务配置 -->
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	
	<!-- 配置事务处理方式 -->
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<!-- 所有以find、get和query开头的方法都是只读的 -->
			<!-- REQUIRED支持当前事务,如果当前没有事务,就新建一个事务 -->
			<tx:method name="find*" read-only="true"/>
			<tx:method name="get*" read-only="true"/>
			<tx:method name="query*" read-only="true"/>
			<tx:method name="add*" propagation="REQUIRED"/>
			<tx:method name="update*" propagation="REQUIRED"/>
			<tx:method name="del*" propagation="REQUIRED"/>
		</tx:attributes>
	</tx:advice>
	
	<!-- 配置参与事务的类:AOP面向切面编程 -->
	<aop:config>
		<!-- pointcut元素定义了一个切入点,execution()是最常用的切入函数 -->
		<!-- 第一个星号匹配方法的返回类型,星号表名返回所有类型 -->
		<!-- com.pmzeroa.service.*.*(..)表明匹配com.pmzeroa.service包下面的所有类的所有方法 -->
		<!-- ..代表方法参数可以是任意的,包括0个参数 -->
		
		<aop:pointcut id="myPointcut" expression="execution(public * com.pmzeroa.service.impl.*.*(..))"/>
		<!-- 将定义好的事务处理策略应用到上述切入点中 -->
		<aop:advisor advice-ref="txAdvice" pointcut-ref="myPointcut"/>
	</aop:config>
</beans>
  • 创建service包
    • 创建UserInfo类
package com.pmzeroa.po;

import java.util.Date;

public class UserInfo {
   

	private Integer userId;
	
	private String userName;
	
	private Integer userAge;
	
	private String userSex;
	
	private Date userBrithday;

	public Integer getUserId() {
   
		return userId;
	}

	public void setUserId(Integer userId) {
   
		this.userId = userId;
	}

	public String getUserName() {
   
		return userName;
	}

	public void setUserName(String userName) {
   
		this.userName = userName;
	}

	public Integer getUserAge() {
   
		return userAge;
	}

	public void setUserAge(Integer userAge) {
   
		this.userAge = userAge;
	}

	public String getUserSex() {
   
		return userSex;
	}

	public void setUserSex(String userSex) {
   
		this.userSex = userSex;
	}

	public Date getUserBrithday() {
   
		return userBrithday;
	}

	public void setUserBrithday(Date userBrithday) {
   
		this.userBrithday = userBrithday
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值