当前位置:网站首页>SSM integration

SSM integration

2022-06-23 07:12:00 IO unintentional

New projects -> choice java Enterprise,project template choice WEB Application-> Fill in project information -> complete .

The project will be automatically added after the new project is successfully created servlet-api And juint Of jar package .

add to mybatis rely on

<!--mysql rely on -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.24</version>
</dependency>

<!--mybatis rely on -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.5</version>
</dependency>

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

establish mybatis Configuration file for

stay resources Create under directory mybatis-config.xml file

<?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>

Deploy Spring and SpringMVC

add to Spring and SpringMVC Dependence

<!-- Fixed version number , writes project In the label -->
<properties>
    <spring-version>5.2.13.RELEASE</spring-version>
</properties>

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

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

<!--spring Integrate mybatis Provide transaction support -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${spring-version}</version>
</dependency>

<!--spring unit testing -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>${spring-version}</version>
</dependency>

<!--spring Integrate mybatis Provide transaction support -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${spring-version}</version>
</dependency>

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

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

<!--SpringMVC For parsing JSON My bag -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.13.2.2</version>
</dependency>

<!--spring Integrate mybatis Dependence -->
<dependency>
    <groupId>com.rainingsince</groupId>
    <artifactId>spring-mybatis</artifactId>
    <version>0.1.1</version>
</dependency>

establish Spring To configure ( Multiple configuration files are configured separately )

1、spring-context.xml  Only configure the management of annotation declaration class (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">
    <!-- Statement spring Scanning range of the project -->
    <context:component-scan base-package="xin.students"/>
    <!-- Declare configuration using annotations -->
    <context:annotation-config/>
</beans>

2、spring-mvc.xml Conduct mvc Related configuration , Static resource configuration and interceptor configuration .

<?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">
    <!-- Configure with annotations -->
    <mvc:annotation-driven/>
</beans>

3、spring-mybatis.cml Conduct Spring And Mybatis Integration and related configuration .

<?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>

To configure SpringMVC Front controller

stay web.xml Middle configuration

<?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">
    <!-- To configure springmvc Front end controller for -->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <!-- Load all of the root directory spring- The profile at the beginning -->
            <param-value>classpath:spring-*.xml</param-value>
        </init-param>
        <!-- Load priority 1, Load first -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

Spring And mybatis Of IOC To configure

To configure durid

Add dependency

<!-- Add Alibaba's database connection pool -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.10</version>
</dependency>

stay resources Create druid.properties by druid Configuration file for .

druid.driver=com.mysql.cj.jdbc.Driver
druid.url=jdbc:mysql:/// Database name ?useSSL=false&serverTimezone=UTC
druid.username= Your database account 
druid.password= Your database secret 
druid.pool.init=100
druid.pool.minIdle=50
druid.pool.maxActive=300
druid.pool.timeout=30000

stay spring-mybatis Middle configuration druid.

<!-- load druid Configuration file for , This label can only be used once , In multi file configuration , It's used here , Other configuration files cannot be used -->
<context:property-placeholder location="classpath:druid.properties"/>

<!-- to druid Configure connection information -->
<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>

To configure SqlSessionFactory

stay spring-mybatis.xml Middle configuration .

<!-- be used for mybatis Connect to database -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <!-- Load database connection pool -->
    <property name="dataSource" ref="druidDataSource"/>

    <!-- Import all mybatis Configuration file of interface class -->
    <property name="mapperLocations" value="classpath:mappers/*.xml"/>

    <!-- Automatically alias all classes under the package , The name is lowercase -->
    <property name="typeAliasesPackage" value="xin.students.ssmconformity"/>
    
    <!-- load mybatis Primary profile for -->
    <property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>

To configure MapperScannerConfigurer

stay spring-mybatis.xml Middle configuration .

<!-- hold DAO Create as an object spring in -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <!-- Inject sqlSessionFaction-->
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    <!--dao The bag where it is , Automatic scanning -->
    <property name="basePackage" value="xin.students.dao"/>
</bean>

Spring And mybatis Of AOP To configure

Use Spring Provide operation DAO Transaction management of , Annotation based is used here .

<!-- Add a transaction management class -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <!-- Inject data source -->
    <property name="dataSource" ref="druidDataSource"/>
</bean>

<!-- Turn on automatic transaction management -->
<tx:annotation-driven transaction-manager="transactionManager"/>

Spring unit testing

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"})
// If it's a single file   @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 unintentional]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/174/202206230618062903.html