maven的ssm整合笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: ssm整合笔记一:ssm描述二:整合ssm2.1搭建maven工程(pom.xml导入相关的包)maven中央仓库:[maven中央仓库](https://mvnrepository.com/)具体配置说明2.2配置mybatis-config.xml文件(mybatis)创建jdbc的资源文件具体配置说明2.3配置applicationContext.xm (Spring)具体配置说明2.4配置springMVC环境DispatcherServlet详细配置2.5配置web.xml环境配置内容如下总结

一:ssm描述


什么是 SSM ?他就是Spring,SpringMVC,Mybatis。


SpringMVC:Controller层,通过实现Model-View-Controller模式来很好地将数据、业务与展现进行分离


Spring:Service层处于中间的位置,其中最出名的ioc控制反转和aop面向切面编程

Mybatis:用于dao层,和数据库交互


b097e1becaa14f16923be1d46a212fcd.png4bd7e39e871d413ab8971fd7d0c0cf01.png

二:整合ssm


2.1搭建maven工程(pom.xml导入相关的包)


maven中央仓库:maven中央仓库

6f6a9fc08e5948c887dbc62773b56942.png

这里要在pom.xml导入相关的包。相关注释在代码内


具体配置说明


<dependencies>
    <!--映入依赖包-->
    <!--1springmvc的包-->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.3.18</version>
    </dependency>
<!--2spring jdbc-->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.3.18</version>
    </dependency>
<!--spring -aspects面向切面编程-->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aspects</artifactId>
      <version>5.3.18</version>
    </dependency>
    <!--MYBATIS-->
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.6</version>
    </dependency>
    <!--mybatis整合spring-->
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>2.0.6</version>
    </dependency>
<!--数据库连接池-->
    <!-- https://mvnrepository.com/artifact/c3p0/c3p0 -->
    <dependency>
      <groupId>c3p0</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.1.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.25</version>
      <scope>runtime</scope>
    </dependency>
    <!-- Spring5和Thymeleaf整合包 -->
    <dependency>
      <groupId>org.thymeleaf</groupId>
      <artifactId>thymeleaf-spring5</artifactId>
      <version>3.0.12.RELEASE</version>
    </dependency>
    <!--其他依赖-->
    <!-- https://mvnrepository.com/artifact/jstl/jstl -->
    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
    <dependency>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-core</artifactId>
      <version>1.3.7</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>ssm-crud</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>
    <!-- 构建过程中用到的插件 -->
    <plugins>
      <!-- 具体插件,逆向工程的操作是以构建过程中插件形式出现的 -->
      <plugin>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-maven-plugin</artifactId>
        <version>1.3.0</version>
        <!-- 插件的依赖 -->
        <dependencies>
          <!-- 逆向工程的核心依赖 -->
          <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.2</version>
          </dependency>
          <!-- 数据库连接池 -->
          <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.2</version>
          </dependency>
          <!-- MySQL驱动 -->
          <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.25</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>


2.2配置mybatis-config.xml文件(mybatis)


在resources中创建mybatis-config.xml(名字可以任意)


2b121a9167d7428c9796808c89bf0dec.png


创建jdbc的资源文件


以后链接数据库都导入这个资源


3ff90e719ae94d6cbe492ed75a24e58a.png


jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm
jdbc.username=root
jdbc.password=0615


具体配置说明


位置有顺序要求


1.引入properties 就是jdbc的配置资源


2.全局舍子(开启驼峰)设置类型别名


3.链接数据库


4.引入映射文件


<?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>
    <!--位置有顺序要求-->
    <!--引入properties文件-->
    <properties resource="dbconfig.properties"></properties>
    <!--开启驼峰-->
    <settings>
        <setting name="mapUnderscoreToCamelCase" 
            value="true"/>
    </settings>
    <!--设置类型别名-->
    <typeAliases>
        <package name="com.xbfinal.bean"/>
    </typeAliases>
<!--.链接数据库-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" 
                  value="${jdbc.driver}"/>
                <property name="url"
                   value="${jdbc.url}"/>
                <property name="username" 
                  value="${jdbc.username}"/>
                <property name="password" 
                  value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--引入映射文件-->
    <mappers>
        <!--<mapper resource="mappers/UserMapper.xml"/>-->
        <package name="com.xbfinal.dao"/>
    </mappers>
</configuration>
</configuration>


**************************************


2.3配置applicationContext.xm (Spring)


在resources中创建applicationContext.xm(名字可以任意)


2c61db279d3544df958cc836c768a916.png


具体配置说明


spring配置文件核心点


0.业务逻辑扫描


1.数据源(c3p0)


2.整合mybatis


SqlSessionFactoryBean


3.事务控制


=======================================4a622534de3b4aca89793e31707831ee.png


在数据源我们采用的是导入的方式


<?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 https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd">
<!--spring配置文件  这里主要配置和业务逻辑有关的-->
<!--业务逻辑扫描-->
    <context:component-scan base-package="com.xbfinal">
        <!--不扫描控制器-->
        <context:exclude-filter type="annotation" 
  expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>
<!--==============================  数据源   ======================================-->
    <context:property-placeholder location="dbconfig.properties"/>
    <bean id="pooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>
    <!--==========================  配置和mybatis整合  =================================================================-->
    <bean class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--指定mybatis全局配置文件的位置-->
        <property name="configLocation" value="classpath:mybatis-config.xml"></property>
        <!--配置数据源 就是上面配置的-->
        <property name="dataSource" ref="pooledDataSource"></property>
        <!--指定mybatis的mapper文件的位置-->
        <property name="mapperLocations" value="classpath:mapper/*.xml"></property>
    </bean>
    <!--配置扫描器。将mybatis接口实现加入到ioc容器-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!--扫描所有的dao接口的实现加入ioc容器-->
        <property name="basePackage" value="com.xbfinal.dao"/>
    </bean>
    <!--==============================================================================-->
    <!--============================   事务控制    =============================================================-->
    <bean id ="TransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!--控制数据源-->
        <property name="dataSource" ref="pooledDataSource"></property>
    </bean>
    <!--开启注解的事务,使用xml配置形式的事务(都使用配置)-->
    <aop:config>
        <!--切入点表达式-->
        <aop:pointcut id="tePint" expression="execution(public * com.xbfinal.service..*(..))"/>
        <!--配置事务增强-->
        <aop:advisor advice-ref="txAdvice" pointcut-ref="tePint"/>
    </aop:config>
    <!--配置事务增强,事务如何切入-->
    <tx:advice id="txAdvice" transaction-manager="TransactionManager">
        <tx:attributes>
            <!--所有方法都是事务方法-->
            <tx:method name="*"/>
            <!--以get开始的所有方法-->
            <tx:method name="get*" read-only="true"/>
        </tx:attributes>
    </tx:advice>
<!--==============================================================================-->
<!--spring配置文件核心点
    1.数据源
    2.整合mybatis
    事务控制
    -->
</beans>


2.4配置springMVC环境DispatcherServlet


在rWEB-INF下创建DispatcherServlet.xm


20e28b66d5594fc8b2e58141b1d7c854.png


详细配置


1.springmvc配置文件 包含网页跳转的控制和配置


2.配置视图解析器 方便页面返回


3.两个标准配置


<?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">
    <!--springmvc配置文件 包含网页跳转的控制和配置-->
    <context:component-scan base-package="com.xbfinal.controller">
    </context:component-scan>
    <!--配置视图解析器 方便页面返回-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    <mvc:view-controller path="/" view-name="index"></mvc:view-controller>
    <!--两个标准配置-->
    <mvc:default-servlet-handler/><!--将springmvc不能处理的交给tomcat-->
    <!--支持springmvc更高级的功能:JSR303校验 ajax请求.映射动态请求-->
    <mvc:annotation-driven/>
</beans>


**************************************


2.5配置web.xml环境


40ff37281b96427488c85b7fdc8a9164.png

配置内容如下


1启动sprin容器 applicationContext.xml


2.配置springMV的前端控制器DispatcherServlet 拦截所有请求


3.字符编码过滤器


4.HHF过滤器: HiddenHttpMethodFilter支持GET、POST、PUT、DELETE请求。


<web-app
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
            http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
        id="WebApp_ID" version="4.0">
<!--1启动sprin容器-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <!--classpath:spring文件配置路径
        项目启动就会加载这个文件
        -->
        <param-value>classpath:applicationContext.xml </param-value>
    </context-param>
<!-- 2.配置springMV的前端控制器DispatcherServlet 拦截所有请求-->
    <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <!--3字符编码过滤器-->
    <filter>
        <filter-name>CharacterEncodingFilter</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>
        <init-param>
            <param-name>forceResponseEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!--HHF过滤器-->
    <filter>
        <filter-name>HiddenHttpMethodFilter</filter-name>
        <!-- HHF -->
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>HiddenHttpMethodFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

总结


以上就是ssm的基本整合内容


先配置mybatis


然后配置 spring


接下来就是springmvc


最后配置一下web.xml


mybatis需要配置那些?


1.引入properties文件


2.全局设置


开启驼峰


3.设置类型别名


4链接数据库.


5.引入映射文件


spring需要配置那些?


1.业务逻辑扫描


2数据源.


3.配置和mybatis整合SqlSessionFactoryBean

org.mybatis.spring.SqlSessionFactoryBean">


4.配置扫描器。将mybatis接口实现加入到ioc容器



5.事务控制TransactionManager


5.1 控制数据源


5.2开启注解的事务,使用xml配置形式的事务(都使用配置)


5.3配置事务增强,事务如何切入


springmvc需要配置那些?


1.网页跳转的控制和配置


package="com.xbfinal.controller">


2.配置视图解析器InternalResourceViewResolver 方便页面返回


3.两个标准配置




web.xml需要配置那些?


1.1启动sprin容器


2.配置springMV的前端控制器DispatcherServlet 拦截所有请求


3字符编码过滤器CharacterEncodingFilter


4.HHF过滤器



相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7月前
|
前端开发 Java 数据库连接
SSM框架笔记源码剖析
SSM,是Spring+Spring MVC+MyBatis的缩写,是继SSH之后,目前比较主流的JavaEE企业级框架,适用于搭建各种大型的企业级应用系统。Spring依赖注人DI来管理各层的组件,使用AOP (面向切面编程)管理事务、日志、权限等。Spring MVC代表Model(模型)、View(视图).Contoller(控制)接收外部请求并进行分发和处理。MyBatis是基于JDBC的框架,主要用来操作数据库,并且将业务实体和数据表联系起来。
77 0
|
7月前
|
Java 应用服务中间件 Maven
IDEA使用Maven整合搭建SSM框架
IDEA使用Maven整合搭建SSM框架
51 1
IDEA使用Maven整合搭建SSM框架
|
7月前
|
Java 数据库 数据安全/隐私保护
基于SSM框架实现管科类考研自我管理系统(分前后台spring+springmvc+mybatis+maven+jsp+jquery)
基于SSM框架实现管科类考研自我管理系统(分前后台spring+springmvc+mybatis+maven+jsp+jquery)
|
6月前
|
Java 编译器 Maven
使用intellij idea搭建SSM架构的maven项目 详细
使用intellij idea搭建SSM架构的maven项目 详细
103 4
|
3月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
497 37
|
3月前
|
Java 数据库连接 Maven
【Java笔记+踩坑】Maven高级
分模块开发、依赖传递与冲突问题、 可选依赖和排除依赖、聚合和继承、属性、多环境配置与应用、私服安装和使用
【Java笔记+踩坑】Maven高级
|
3月前
|
前端开发 Java 数据库连接
【Java笔记+踩坑】SSM整合
统一结果封装、统一异常处理、整合图书案例、拦截器
【Java笔记+踩坑】SSM整合
|
4月前
|
Java 应用服务中间件 Maven
Mac使用Idea配置传统SSM项目(非maven项目)
Mac使用Idea配置传统SSM项目(非maven项目)
60 1
|
6月前
|
XML Java 数据库连接
技术笔记:Maven的pom.xml(坐标的gav、依赖的scope)
技术笔记:Maven的pom.xml(坐标的gav、依赖的scope)
201 0
|
6月前
|
JSON JavaScript 前端开发
技术笔记:ssm异步上传图片
技术笔记:ssm异步上传图片
25 0