SSM整合(一)

目录

  • 一、SSM项目流程
  • 二、创建SSM项目
    • [1. 创建SSM项目流程](#1. 创建SSM项目流程)
    • [2. pom.xml添加相关依赖](#2. pom.xml添加相关依赖)
    • [3. 添加配置文件头部信息](#3. 添加配置文件头部信息)
    • [4. 配置文件中基础的配置信息](#4. 配置文件中基础的配置信息)

一、SSM项目流程

  1. 客户端请求到达后端Controller表现层;
  2. DispatcherServlet前端控制器拦截请求;
  3. 通过HandlerMapping处理器映射器和HandlerAdaptor处理器适配器,找到对应的Controller和Controller中对应的方法,执行方法;
  4. 方法调用Service业务层,Service调用Dao持久层,Dao调用数据库;
  5. 拿回数据,返回给持久层,持久层将数据返回给业务层,业务层将数据返回给表现层,表现层将数据给DispatcherServlet前端控制器;
  6. 由DispatcherServlet前端控制器找ViewReslover视图解析器,解析数据,然后响应给客户端。

二、创建SSM项目

SSM可以创建3类项目:

  • 普通JavaWeb项目
  • maven的JavaWeb项目
  • SpringBoot项目

创建maven的JavaWeb项目

1. 创建SSM项目流程

  1. 在src下的main中补齐两个文件夹:java和resources
  2. java文件夹下补齐包:controller、dao/mapper、entity/model、service、impl、utiles
  3. 修改web.xml文件中的版本,可以使用tomcat中的版本
  4. 在pom.xml文件中导入相关依赖:根据项目导入Spring、SpringMVC、MyBatis、MySQL、Junit等相关依赖
  5. resources下补齐配置文件:applicationContext.xml、springmvc.xml、SqlMapConfig.xml,并补齐头部信息

目录:

2. pom.xml添加相关依赖

xml 复制代码
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <spring.version>5.0.2.RELEASE</spring.version>
    <slf4j.version>1.6.6</slf4j.version>
    <log4j.version>1.2.12</log4j.version>
    <mysql.version>5.1.6</mysql.version>
    <mybatis.version>3.4.5</mybatis.version>
  </properties>
  <dependencies>
    <!--spring框架的核心依赖-->
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>1.6.8</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!--Junit测试整合-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <!--JDBC模板依赖-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!--mysql驱动包-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>${mysql.version}</version>
    </dependency>
    <!--连接池-->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.10</version>
    </dependency>

    <!--单元测试-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>

    <!--springmvc框架的核心依赖-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <!-- log start -->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>${log4j.version}</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>${slf4j.version}</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>${slf4j.version}</version>
    </dependency>
    <!-- log end -->

    <!--mybatis框架的核心依赖-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>${mybatis.version}</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.0</version>
    </dependency>
  </dependencies>
</project>

3. 添加配置文件头部信息

  1. applicationContext.xml

    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: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.xsd
                               http://www.springframework.org/schema/context
                               http://www.springframework.org/schema/context/spring-context.xsd
                               http://www.springframework.org/schema/aop
                               http://www.springframework.org/schema/aop/spring-aop.xsd
                               http://www.springframework.org/schema/tx
                               http://www.springframework.org/schema/tx/spring-tx.xsd">
        
    </beans>
  2. springmvc.xml

    xml 复制代码
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:mvc="http://www.springframework.org/schema/mvc" 
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
                               http://www.springframework.org/schema/beans/spring-beans.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">
    
    </beans>
  3. SqlMapConfig.xml

    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>

4. 配置文件中基础的配置信息

  1. applicationContext.xml基础配置信息: 开启注解扫描

    xml 复制代码
    <!--开启注解扫描-->
    <context:component-scan base-package="com.tx"/>
  2. springmvc.xml基础配置信息: 开启注解扫描Controller层、配置视图解析器、使springmvc注解生效

    xml 复制代码
    <!--开启注解扫描-->
    <context:component-scan base-package="com.tx.Controller"/>
    <!--配置视图解析器-->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!--前缀:文件目录所在位置-->
        <property name="prefix" value="/WEB-INF/pages/"/>
        <!--后缀:文件类型-->
        <property name="suffix" value=".jsp"/>
    </bean>
    
    <!-- 启用Spring MVC注解驱动 -->
    <mvc:annotation-driven/>
  3. SqlMapConfig.xml基础配置信息: 加载配置数据源、加载映射文件

    xml 复制代码
    <!--加载配置数据源-->
    <environments default="mysql">
        <environment id="mysql">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driverclass" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql:///ssm" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
    
    <!--加载映射文件-->
    <mappers>
        
    </mappers>
  4. web.xml基础配置信息: 前端控制器、监听器、过滤器

    xml 复制代码
    <!--前端控制器-->
    <servlet>
      <servlet-name>dispatcherServlet</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <!--初始化参数,加载springmvc.xml配置文件-->
      <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springmvc.xml</param-value>
      </init-param>
      <!--启动加载-->
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
      <servlet-name>dispatcherServlet</servlet-name>
      <url-pattern>/</url-pattern>
    </servlet-mapping>
    
    <!--监听器-->
    <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    
    <!--过滤器-->
    <filter>
      <filter-name>characterEncodingFilter</filter-name>
      <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
          <param-name>encodong</param-name>
          <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
      <filter-name>characterEncodingFilter</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>
  5. applicationContext.xml基础配置信息新添加:

    • 将配置数据源交给spring管理,SqlMapConfig.xml中的配置数据源可以注释掉了
    • 配置会话工厂,并且加载SqlMapConfig.xml
    • 扫描包
xml 复制代码
<!--配置数据源-->
<!--配置数据库连接池交给spring管理,采用第三方:阿里巴巴的Druuid连接池-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="localhost:3306/ssm"/>
    <property name="username" value="root"/>
    <property name="password" value="root"/>
</bean>

<!--创建和数据库连接的会话工厂对象交给spring管理
    优化直接加载sql文件
    省略myBatis的总配置文件
-->
<!--配置会话工厂,并且加载SqlMapConfig.xml-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="configLocation" value="classpath:SqlMapConfig.xml"/>
</bean>

<!--扫描包-->
<bean id="mapperScan" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    <property name="basePackage" value="com.tx.Dao"/>
</bean>
相关推荐
tgethe1 小时前
Lambda表达式
java·后端
__万波__1 小时前
二十三种设计模式(一)--单例模式
java·单例模式·设计模式
songgz1 小时前
双向流式 JSON 解析架构:并行优化大型文件处理
java·开发语言·json
6***09261 小时前
Spring 中集成Hibernate
java·spring·hibernate
z***02601 小时前
Spring Boot管理用户数据
java·spring boot·后端
多多*1 小时前
Threadlocal深度解析 为什么key是弱引用 value是强引用
java·开发语言·网络·jvm·网络协议·tcp/ip·mybatis
z***39622 小时前
Plugin ‘org.springframework.bootspring-boot-maven-plugin‘ not found(已解决)
java·前端·maven
星尘库2 小时前
.NET Framework中报错命名空间System.Text中不存在类型或命名空间名Json
java·json·.net
百***35482 小时前
后端在微服务中的Docker
java·docker·微服务