• 中文
    • English
  • 注册
  • 查看作者
    • 使用Maven整合SSM

      一.  添加依赖

      在整合之前,我们先来看一下,如果不适用Maven,我们应该如何将ssm整合,如果您想查看使用Maven整合SSM,请直接打开本文第五段

      使用Maven整合SSM

      二.  Spring 整合SpringMVC

      1.  Spring配置文件:applicationContext.xml

      • 配置自动扫描组件,不扫描控制层的组件

      2.  SpringMVC的配置文件:spring-mvc.xml

      • 配置自动扫描组件,只扫描控制层的组件

      • 视图解析器

      • 静态资源访问

      3.  web.xml

      • 处理乱码的过滤器:CharacterEncodingFilter

      • 请求分配器:初始化SpringMVC的IOC容器,DispatchServlet

      • 上下文监听:初始化Spring的IOC容器,ContextLoaderListener

      三.  整合Mybatis

      1.  配置mybatis-config.xml

      2.  配置jdbc.properties

      3.  配置log4j.properties

      4.  添加BookMapper.xml

      5.  修改applicationContext.xml

      • 配置DruidDataSource

      • 配置DataSourceTransactionManager

      • 配置开启使用注解配置事务

      • 配置SQLSessionFactoryBean

      • 配置MapperScannerConfigurer

      四.  代码文件

      1.  数据库

      数据库采用的还是 《MyBatis:简单使用》一文中创建的数据库

      2.  Book

      package io.zhangjia.ssm.entity;
      
      public class Book {
          private Integer bookId;
          private String name;
          private String author;
          private Double price;
      
          public Integer getBookId() {
              return bookId;
          }
      
          public void setBookId(Integer bookId) {
              this.bookId = bookId;
          }
      
          public String getName() {
              return name;
          }
      
          public void setName(String name) {
              this.name = name;
          }
      
          public String getAuthor() {
              return author;
          }
      
          public void setAuthor(String author) {
              this.author = author;
          }
      
          public Double getPrice() {
              return price;
          }
      
          public void setPrice(Double price) {
              this.price = price;
          }
      
          @Override
          public String toString() {
              return "Book{" +
                      "bookId=" + bookId +
                      ", name='" + name + '\'' +
                      ", author='" + author + '\'' +
                      ", price=" + price +
                      '}';
          }
      }

      3.  Controller

      package io.zhangjia.ssm.controller;
      
      import io.zhangjia.ssm.entity.Book;
      import io.zhangjia.ssm.mapper.BookMapper;
      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.stereotype.Controller;
      import org.springframework.ui.Model;
      import org.springframework.web.bind.annotation.GetMapping;
      
      
      @Controller
      public class TestController {
          @Autowired
          private BookMapper bookMapper;
      
          @GetMapping("/test")
          public String Test(Integer id, Model model) {
              Book book = bookMapper.queryById(id);
              model.addAttribute("book",book);
              System.out.println("book = " + book);
              return "test";
          }
      }

      4. BookMapper

      package io.zhangjia.ssm.mapper;
      
      import io.zhangjia.ssm.entity.Book;
      
      public interface BookMapper {
              Book queryById(Integer bookId);
      }

      5.  Service

      package io.zhangjia.ssm.service;
      
      import org.springframework.stereotype.Service;
      
      @Service
      public class TestService {
      
      }

      6.  BookMapper.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="io.zhangjia.ssm.mapper.BookMapper">
      
          <select id="queryById" resultType="book">
              SELECT * FROM BOOK WHERE BOOK_ID = #{BOOK_ID}
          </select> 
      
      </mapper>

      7.  applicationContext.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 http://www.springframework.org/schema/tool http://www.springframework.org/schema/tool/spring-tool.xsd">
          <context:component-scan base-package="io.zhangjia.ssm"  >
              <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
              <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
          </context:component-scan>
      
      
          <context:property-placeholder location="classpath:jdbc.properties"/>
      
          <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
              <property name="driverClassName" value="${jdbc.driver}"/> <!--    OGNL-->
              <property name="url" value="${jdbc.url}"/>
              <property name="username" value="${jdbc.username}"/>
              <property name="password" value="${jdbc.password}"/>
          </bean>
      
          <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
              <property name="dataSource" ref="dataSource" />
          </bean>
      
      
          <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
              <property name="dataSource" ref="dataSource" />
              <property name="configLocation" value="classpath:mybatis-config.xml" />
              <property name="mapperLocations" value="classpath:mapper/*.xml" />
              <property name="typeAliasesPackage" value="io.zhangjia.ssm.entity" />  <!--起别名-->
          </bean>
      
          <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
              <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
              <property name="basePackage" value="io.zhangjia.ssm.mapper"/>
          </bean>
      </beans>

      8.  jdbc.properties

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

      9.  log4j.properties

      # Global logging configuration
      log4j.rootLogger=DEBUG, stdout
      #log4j.rootLogger=ERROR, stdout
      # MyBatis logging configuration...
      log4j.logger.org.mybatis.example.BlogMapper=TRACE
      # Console output...
      log4j.appender.stdout=org.apache.log4j.ConsoleAppender
      log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
      log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

      10.  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>
      
          <settings>
              <setting name="mapUnderscoreToCamelCase" value="true"/>
              <setting name="lazyLoadingEnabled" value="true"/>
          </settings>
      
      </configuration>

      11.  spring-mvc.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"
             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 https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
      
      
          <context:component-scan base-package="io.zhangjia.ssm"  >
              <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
              <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
          </context:component-scan>
      
      
      
          <!--配置视图解析器-->
          <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
              <property name="prefix" value="/WEB-INF/views/"/>
              <property name="suffix" value=".jsp"/>
          </bean>
      
      
          <!--静态资源的请求转由Web容器处理-->
          <mvc:default-servlet-handler/>
      
      
          <!--配置默认组件-->
          <mvc:annotation-driven/>  <!--如果不配置这个,那么静态资源可以访问,Controller无法访问-->
      
      
      </beans>

      12.  test.jsp

      <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
      <!DOCTYPE html>
      <html>
      <head>
          <title>Title</title>
      </head>
      <body>
      <h1>张大嘎</h1>
      ${requestScope.book}
      </body>
      </html>

      五.  使用Maven整合SSM

      使用Maven整合SSM非常简单,首先按照本站《Maven:使用IDEA基于Maven创建JavaWeb项目》一文的教程创建JavaWeb项目,

      并将pom.xml的内容替换为:

      <?xml version="1.0" encoding="UTF-8"?>
      
      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
          <modelVersion>4.0.0</modelVersion>
      
          <groupId>com.oaec</groupId>
          <artifactId>ssm2</artifactId>
          <version>1.0-SNAPSHOT</version>
          <packaging>war</packaging>
      
          <name>ssm2 Maven Webapp</name>
          <!-- FIXME change it to the project's website -->
          <url>http://www.example.com</url>
      
          <properties>
              <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
              <maven.compiler.source>1.7</maven.compiler.source>
              <maven.compiler.target>1.7</maven.compiler.target>
          </properties>
      
          <dependencies>
              <dependency>
                  <groupId>junit</groupId>
                  <artifactId>junit</artifactId>
                  <version>4.11</version>
                  <scope>test</scope>
              </dependency>
      <!--*********************************************Spring依赖*************************************************-->
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-context</artifactId>
                  <version>5.1.8.RELEASE</version>
                  <!--会自动添加以下依赖
                    Maven: org.springframework:spring-aop:5.1.8.RELEASE
                    Maven: org.springframework:spring-beans:5.1.8.RELEASE
                    Maven: org.springframework:spring-context:5.1.8.RELEASE
                    Maven: org.springframework:spring-core:5.1.8.RELEASE
                    Maven: org.springframework:spring-expression:5.1.8.RELEASE
                    Maven: org.springframework:spring-jcl:5.1.8.RELEASE
                  -->
              </dependency>
      
      <!--*********************************************SpringMVC依赖*************************************************-->
      
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-webmvc</artifactId>
                  <version>5.1.8.RELEASE</version>
                  <!--会自动添加以下依赖
                  Maven: org.springframework:spring-web:5.1.8.RELEASE
                  Maven: org.springframework:spring-webmvc:5.1.8.RELEASE
                  -->
              </dependency>
      
      
      <!--*********************************************Mybatis依赖*************************************************-->
              <dependency>
                  <groupId>org.mybatis</groupId>
                  <artifactId>mybatis</artifactId>
                  <version>3.5.1</version>
              </dependency>
      
      <!--*********************************************spring-jdbc依赖*************************************************-->
      
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-jdbc</artifactId>
                  <version>5.1.8.RELEASE</version>
                  <!--会自动添加以下依赖
                  Maven: org.springframework:spring-jdbc:5.1.8.RELEASE
                  Maven: org.springframework:spring-tx:5.1.8.RELEASE
      
                  -->
              </dependency>
      <!--*********************************************log4j*************************************************-->
              <dependency>
                  <groupId>log4j</groupId>
                  <artifactId>log4j</artifactId>
                  <version>1.2.17</version>
              </dependency>
      
      <!--*********************************************mybatis-spring*************************************************-->
              <dependency>
                  <groupId>org.mybatis</groupId>
                  <artifactId>mybatis-spring</artifactId>
                  <version>1.3.2</version>
                  <!--该依赖用于mybatis和spring整合-->
              </dependency>
      
      
      <!--*********************************************mysql驱动*************************************************-->
              <dependency>
                  <groupId>mysql</groupId>
                  <artifactId>mysql-connector-java</artifactId>
                  <version>5.1.47</version>
              </dependency>
      
      <!--*********************************************数据库连接池*************************************************-->
              <dependency>
                  <groupId>com.alibaba</groupId>
                  <artifactId>druid</artifactId>
                  <version>1.1.16</version>
              </dependency>
      
      <!--*********************************************Mybatis插件*************************************************-->
              <dependency>
                  <groupId>com.github.pagehelper</groupId>
                  <artifactId>pagehelper</artifactId>
                  <version>5.1.9</version>
              </dependency>
      
      <!--*********************************************JSTL插件*************************************************-->
              <dependency>
                  <groupId>javax.servlet</groupId>
                  <artifactId>jstl</artifactId>
                  <version>1.2</version>
              </dependency>
              <dependency>
                  <groupId>taglibs</groupId>
                  <artifactId>standard</artifactId>
                  <version>1.1.2</version>
              </dependency>
              <!--*********************************************JSTL插件*************************************************-->
      
          </dependencies>
      
          <build>
              <finalName>ssm2</finalName>
              <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
                  <plugins>
                      <plugin>
                          <artifactId>maven-clean-plugin</artifactId>
                          <version>3.1.0</version>
                      </plugin>
                      <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
                      <plugin>
                          <artifactId>maven-resources-plugin</artifactId>
                          <version>3.0.2</version>
                      </plugin>
                      <plugin>
                          <artifactId>maven-compiler-plugin</artifactId>
                          <version>3.8.0</version>
                      </plugin>
                      <plugin>
                          <artifactId>maven-surefire-plugin</artifactId>
                          <version>2.22.1</version>
                      </plugin>
                      <plugin>
                          <artifactId>maven-war-plugin</artifactId>
                          <version>3.2.2</version>
                      </plugin>
                      <plugin>
                          <artifactId>maven-install-plugin</artifactId>
                          <version>2.5.2</version>
                      </plugin>
                      <plugin>
                          <artifactId>maven-deploy-plugin</artifactId>
                          <version>2.8.2</version>
                      </plugin>
                  </plugins>
              </pluginManagement>
          </build>
      </project>

      接下来将上文前四节中所有文件,按照下图的方式,分为放入指定文件夹即可完成ssm的整合

      使用Maven整合SSM

    • 0
    • 0
    • 0
    • 1.6k
    • 请登录之后再进行评论

      登录

      赞助本站

      • 支付宝
      • 微信
      • QQ

      感谢一直支持本站的所有人!

      单栏布局 侧栏位置: