maven的ssm整合笔记

2年前 (2022) 程序员胖胖胖虎阿
284 0 0

前言
👏作者简介:我是笑霸final,一名热爱技术的在校学生。
📝个人主页:笑霸final的主页
📕系列专栏:本文写在1.java专栏 2.资料专栏
📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
🔥如果感觉博主的文章还不错的话,👍点赞👍 + 👀关注👀 + 🤏收藏🤏

ssm整合笔记

  • 一:ssm描述
  • 二:整合ssm
    • 2.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层,和数据库交互

maven的ssm整合笔记
maven的ssm整合笔记

二:整合ssm

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

maven中央仓库:maven中央仓库

maven的ssm整合笔记

这里要在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(名字可以任意)
maven的ssm整合笔记

创建jdbc的资源文件

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

maven的ssm整合笔记

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(名字可以任意)
maven的ssm整合笔记

具体配置说明

spring配置文件核心点
0.业务逻辑扫描
1.数据源(c3p0)
2.整合mybatis
SqlSessionFactoryBean
3.事务控制
=======================================

maven的ssm整合笔记
在数据源我们采用的是导入的方式

<?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
maven的ssm整合笔记

详细配置

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环境

maven的ssm整合笔记

配置内容如下

1启动sprin容器 applicationContext.xml
2.配置springMV的前端控制器DispatcherServlet 拦截所有请求
3.字符编码过滤器
4.HHF过滤器: Hidden
H
ttpMethodFilter支持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文件 <properties resource=""
2.全局设置
开启驼峰<setting name="mapUnderscoreToCamelCase" value="true"/>
3.设置类型别名<typeAliases></typeAliases>
4链接数据库.<environments>
5.引入映射文件 <mappers>

spring需要配置那些?

1.业务逻辑扫描<context:component-scan base-package="com.xbfinal">
2数据源.<context:property-placeholder location="dbconfig.properties"/>
3.配置和mybatis整合SqlSessionFactoryBean <bean class=" org.mybatis.spring.SqlSessionFactoryBean">
4.配置扫描器。将mybatis接口实现加入到ioc容器
<bean class=" org.mybatis.spring.mapper.MapperScannerConfigurer">

5.事务控制TransactionManager
5.1 控制数据源
5.2开启注解的事务,使用xml配置形式的事务(都使用配置)
5.3配置事务增强,事务如何切入

springmvc需要配置那些?

1.网页跳转的控制和配置<context:component-scan base-package="com.xbfinal.controller">
2.配置视图解析器InternalResourceViewResolver 方便页面返回
3.两个标准配置
<mvc:default-servlet-handler/>
<mvc:annotation-driven/>

web.xml需要配置那些?

1.1启动sprin容器<context-param>
2.配置springMV的前端控制器DispatcherServlet 拦截所有请求<servlet>
3字符编码过滤器CharacterEncodingFilter<filter>
4.HHF过滤器<filter>

还请大家一键三连 谢了老铁
👍点赞👍 + 👀关注👀 + 🤏收藏🤏

版权声明:程序员胖胖胖虎阿 发表于 2022年9月11日 上午11:16。
转载请注明:maven的ssm整合笔记 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...