当前位置:网站首页>SSM整合

SSM整合

2022-06-23 06:18:00 io无心

新建项目->选择java Enterprise,project template选择WEB Application->填写项目信息->完成。

新建成功后项目会自动添加servlet-api与juint的jar包。

添加mybatis依赖

<!--mysql依赖-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.24</version>
</dependency>

<!--mybatis依赖-->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.5</version>
</dependency>

<!--lombok依赖-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.10</version>
    <scope>provided</scope>
</dependency>

创建mybatis的配置文件

在resources目录下创建mybatis-config.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>

</configuration>

部署Spring和SpringMVC

添加Spring和SpringMVC的依赖

<!--固定版本号,写到project标签中-->
<properties>
    <spring-version>5.2.13.RELEASE</spring-version>
</properties>

<!--Spring-IOC的依赖-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${spring-version}</version>
</dependency>

<!--Spring-AOP的依赖-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>${spring-version}</version>
</dependency>

<!--spring整合mybatis提供事务支持-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${spring-version}</version>
</dependency>

<!--spring单元测试-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>${spring-version}</version>
</dependency>

<!--spring整合mybatis提供事务支持-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${spring-version}</version>
</dependency>

<!--SpringMVC的包-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>${spring-version}</version>
</dependency>

<!--SpringMVC的包-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>${spring-version}</version>
</dependency>

<!--SpringMVC用于解析JSON的包-->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.13.2.2</version>
</dependency>

<!--spring整合mybatis的依赖-->
<dependency>
    <groupId>com.rainingsince</groupId>
    <artifactId>spring-mybatis</artifactId>
    <version>0.1.1</version>
</dependency>

创建Spring配置(多配置文件分开配置)

1、spring-context.xml  只配置注解声明一级类的管理(IOC)。

<?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:aop="http://www.springframework.org/schema/aop"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
             http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
             http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
             http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
             http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    <!--声明spring工程的扫描范围-->
    <context:component-scan base-package="xin.students"/>
    <!--声明使用注解配置-->
    <context:annotation-config/>
</beans>

2、spring-mvc.xml 进行mvc相关的配置,静态资源配置和拦截器配置等。

<?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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans  
      http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
      http://www.springframework.org/schema/mvc  
      http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
    <!--使用注解配置-->
    <mvc:annotation-driven/>
</beans>

3、spring-mybatis.cml 进行Spring与Mybatis整和相关的配置。

<?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:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
             http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
             http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
             http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
</beans>

配置SpringMVC前端控制器

在web.xml中配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!--配置springmvc的前端控制器-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <!--加载根目录所有spring-开头的配置文件-->
            <param-value>classpath:spring-*.xml</param-value>
        </init-param>
        <!--加载优先级1,最先加载-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

Spring与mybatis的IOC配置

配置durid

添加依赖

<!--添加阿里巴巴的数据库连接池-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.10</version>
</dependency>

在resources下创建druid.properties为druid的配置文件。

druid.driver=com.mysql.cj.jdbc.Driver
druid.url=jdbc:mysql:///数据库名?useSSL=false&serverTimezone=UTC
druid.username=你的数据库账号
druid.password=你的数据库密目
druid.pool.init=100
druid.pool.minIdle=50
druid.pool.maxActive=300
druid.pool.timeout=30000

在spring-mybatis中配置druid。

<!--加载druid的配置文件,这个标签只能用一次,多文件配置中,这里使用了,其它的配置文件就不能使用了-->
<context:property-placeholder location="classpath:druid.properties"/>

<!--给druid配置连接信息-->
<bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
    <property name="driverClassName" value="${druid.driver}"/>
    <property name="url" value="${druid.url}"/>
    <property name="username" value="${druid.username}"/>
    <property name="password" value="${druid.password}"/>

    <property name="initialSize" value="${druid.pool.init}"/>
    <property name="minIdle" value="${druid.pool.minIdle}"/>
    <property name="maxActive" value="${druid.pool.maxActive}"/>
    <property name="maxWait" value="${druid.pool.timeout}"/>
</bean>

配置SqlSessionFactory

在spring-mybatis.xml中配置。

<!--用于mybatis与数据库连接-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <!--加载数据库连接池-->
    <property name="dataSource" ref="druidDataSource"/>

    <!--导入所有mybatis接口类的配置文件-->
    <property name="mapperLocations" value="classpath:mappers/*.xml"/>

    <!--给该包下的所有类自动起别名,名称为类名首字母小写-->
    <property name="typeAliasesPackage" value="xin.students.ssmconformity"/>
    
    <!--加载mybatis的主配置文件-->
    <property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>

配置MapperScannerConfigurer

在spring-mybatis.xml中配置。

<!--把DAO创建成对象放到spring中-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <!--注入sqlSessionFaction-->
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    <!--dao所在的包,自动扫描-->
    <property name="basePackage" value="xin.students.dao"/>
</bean>

Spring与mybatis的AOP配置

使用Spring提供操作DAO的事务管理,这里使用的是基于注解的。

<!--添加事务管理类-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <!--注入数据源-->
    <property name="dataSource" ref="druidDataSource"/>
</bean>

<!--开启自动事务管理-->
<tx:annotation-driven transaction-manager="transactionManager"/>

Spring单元测试

package xin.students.dao;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import xin.students.pojo.Student;

import javax.annotation.Resource;
import java.util.Arrays;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:spring-context.xml", "classpath:spring-mvc.xml", "classpath:spring-mybatis.xml"})
//如果是单个文件  @ContextConfiguration("classpath:spring-mybatis.xml")
public class testTest {

    @Resource
    private StudentDao studentDao;

    @Test
    public void query() {
        System.out.println("-----------------------------------------");
        Student[] query = studentDao.query();
        for (Student s : query) {
            System.out.println("---------------" + s);
        }
    }
}

原网站

版权声明
本文为[io无心]所创,转载请带上原文链接,感谢
https://blog.csdn.net/LYXlyxll/article/details/124998545