The first set up a framework of ssm

First of all need to be ready to import maven dependent (allocation of resources exported):

<dependencies>
    <!--Junit-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
    <!--数据库驱动-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.47</version>
    </dependency>
    <!-- 数据库连接池 -->
    <dependency>
        <groupId>com.mchange</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.5.2</version>
    </dependency>

    <!--Servlet - JSP -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.2</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

    <!--Mybatis-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.2</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>2.0.2</version>
    </dependency>

    <!--Spring-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.1.9.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.1.9.RELEASE</version>
    </dependency>
</dependencies>
<build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

Then be configured from layers of MyBatis layer -> Spring Layer -> SpringMVC layer

Mybatis layer:
1. Create 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>
    <!--给实体类设置别名-->
    <typeAliases>
        <typeAlias type="com.jee.entity.Book" alias="book"/>
    </typeAliases>
    <!--其他设置都在spring配置文件中配置-->
</configuration>

2. Create a database with the corresponding entity class (because this is just a simple ssm integrated project database so very simple), and the corresponding Mapper interfaces

package com.jee.entity;

public class Book {
    private int id;
    private String name;
    private int count;
    private String introduce;
    //一些构造方法和get/set方法省略
}

package com.jee.dao;

import com.jee.entity.Book;

import java.util.List;

public interface BookMapper {
    boolean addBook(Book book);
    boolean deleteBookById(@Param("id") int id);
    Book queryBookById(@Param("id") int id);
    List<Book> queryAllBook();
    boolean updateBook(Book book);
}

3. Write the appropriate file Mapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jee.dao.BookMapper">
    <insert id="addBook" parameterType="book">
        insert into book values(#{id},#{name},#{count},#{introduce})
    </insert>
    <delete id="deleteBookById" parameterType="int">
        delete from book where id = #{id}
    </delete>
    <resultMap id="bookMapper" type="book">
        <result property="introduce" column="detail"/>
    </resultMap>
    <select id="queryBookById" parameterType="int" resultMap="bookMapper">
        select * from book where id = #{id}
    </select>
    <select id="queryAllBook" resultMap="bookMapper">
        select * from book
    </select>
    <update id="updateBook" parameterType="book">
        update book set name = #{name},count = #{count},detail = #{introduce} where id = #{id}
    </update>
</mapper>

4. db.properties configuration file (parameter set dataSource)

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/ssm_build?useSSL=true&useUnicode=true&characterEncoding=utf8
username=root
password=123456

5. Create a Service interface and implementation class

//一般Service层中的实体类都需要使用Service注解
@Service
public class BookServiceImpl implements BookService {
	//使用AutoWield注解 实现自动注入 就无须手动去注入属性了
    @Autowired
    private BookMapper mapper;

    public void setMapper(BookMapper mapper) {
        this.mapper = mapper;
    }

    public boolean addBook(Book book) {
        mapper.addBook(book);
        return true;
    }

    public boolean deleteBookById(int id) {
        mapper.deleteBookById(id);
        return true;
    }

    public Book queryBookById(int id) {
        return mapper.queryBookById(id);
    }

    public List<Book> queryAllBook() {
        return mapper.queryAllBook();
    }

    public boolean updateBook(Book book) {
        mapper.updateBook(book);
        return true;
    }
}

6. Spring configuration xml file integrated Mybatis spring-dao.xml configured here I have a more serious look at every comment must be seen

<?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: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/context
https://www.springframework.org/schema/context/spring-context.xsd">

    <!--    &lt;!&ndash;关联数据库配置文件 db.properties.xml (使用有bug 使用配置文件无法连接Mysql 换普通连接可以用)&ndash;&gt;-->
<!--    <context:property-placeholder location="classpath:db.properties"/>-->

    <!-- 配置dataSource 数据源(c3p0的连接池) -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <!--在数据源中配置一些mysql连接的属性-->
        <property name="driverClass" value="com.mysql.jdbc.Driver"/>
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/ssm_build?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
        <property name="user" value="root"/>
        <property name="password" value="123456"/>
<!--        <property name="driverClass" value= "${driver}"/>-->
<!--        <property name="jdbcUrl" value="${url}"/>-->
<!--        <property name="user" value="${username}"/>-->
<!--        <property name="password" value="${password}"/>-->
        <!-- c3p0连接池的私有属性 -->
        <property name="maxPoolSize" value="30"/>
        <property name="minPoolSize" value="10"/>
        <!-- 关闭连接后不自动commit -->
        <property name="autoCommitOnClose" value="false"/>
        <!-- 获取连接超时时间 -->
        <property name="checkoutTimeout" value="10000"/>
        <!-- 当获取连接失败重试次数 -->
        <property name="acquireRetryAttempts" value="2"/>
    </bean>

    <!-- 配置SqlSessionFactory -->
    <bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactory">
        <!--连接数据源-->
        <property name="dataSource" ref="dataSource"/>
        <!--配置Mybatis-config.xml文件的关联-->
        <property name="configLocation" value="classpath:Mybatis-config.xml"/>
        <!--配置mapper.xml的映射(在Mybatis-config.xml文件中也可以做  在这里也可以做-->
        <property name="mapperLocations" value="classpath:com/jee/dao/BookMapper.xml"/>
    </bean>

    <!--可以注册一个SqlSessionTemplate对象 也可以配置扫描Dao接口包,
    动态实现Dao接口注入到spring容器中,这里使用第二种方法-->
    <!--解释 : https://www.cnblogs.com/jpfss/p/7799806.html-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 注入sqlSessionFactory -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <!-- 给出需要扫描Dao接口包 -->
        <property name="basePackage" value="com.jee.dao"/>
    </bean>
</beans>

7. Configure Spring Integration Service layer file Spring-service.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: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/context https://www.springframework.org/schema/context/spring-context.xsd">

    <!--扫描指定包下的注解 若使用了注解 需要配置扫描注解的设置-->
    <context:component-scan base-package="com.jee.service" />

    <!--将我们所有的业务类 都注册到Spring中 我们创建完类后 第一个要做的事就是把它注册到Spring容器中-->
    <bean class="com.jee.service.BookServiceImpl" id="bookServiceImpl">
        <!--因为我们使用了@AutoWield注解 所以无需我们手动注入了 它会自动注入
        <property name="mapper" ref="bookMapper"/>
        -->
    </bean>

    <!-- 声明式事务配置 (如:设置事务的自动提交 等等) -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!-- 注入数据库连接池 -->
        <property name="dataSource" ref="dataSource" />
    </bean>

</beans>

8. SpringMVC layer disposed in web.xml configuration DispatcherServlet

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

    <!--配置DispatcherServlet-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <!--绑定springmvc的配置文件-->
            <param-name>contextConfigLocation</param-name>
            <!--  注意 这里绑定的配置文件不能写springmvc的配置文件 因为有一些类它并没有注册在springmvc.xml这个文件下,
            而是在其他配置文件 所以我们需要绑定最终我们整合所有文件的那个xml文件下(applicationContext.xml)
            <param-value>classpath:spring-mvc.xml</param-value>-->
            <param-value>classpath:applicationContext.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>

    <!--乱码过滤-->
    <filter>
        <filter-name>encodingFilter</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>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!--Session过期时间-->
    <session-config>
        <session-timeout>15</session-timeout>
    </session-config>
</web-app>

9. Create springmvc.xml profile

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

    <!-- 配置SpringMVC -->
    <!-- 1.开启SpringMVC注解驱动 -->
    <mvc:annotation-driven />
    <!-- 2.静态资源默认servlet配置-->
    <mvc:default-servlet-handler/>
    <!-- 3.扫描配置路径中的所有注解 -->
    <context:component-scan base-package="com.jee.controller" />

    <!-- 4.配置jsp 显示ViewResolver视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
        <!--前缀-->
        <property name="prefix" value="/WEB-INF/jsp/" />
        <!--后缀-->
        <property name="suffix" value=".jsp" />
    </bean>

</beans>

Here almost on the framework to build the business over the other just write on it later if you use this framework to develop ssm brought with it only need to modify some configuration or substantially similar.

Forgot to add the log here later found additional log4j logging

Add dependence:

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>

Create a log4j.properties file

log4j.rootLogger=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

Set log4j in Mybatis-config.xml file

<settings>
        <setting name="logImpl" value="LOG4J"/>
    </settings>

This whole set up is complete.

Published 53 original articles · won praise 0 · Views 1956

Guess you like

Origin blog.csdn.net/XXuan_/article/details/104128784