首页 > 其他分享 >SSM整合

SSM整合

时间:2023-02-25 18:11:22浏览次数:31  
标签:xml web 配置文件 -- spring SSM 整合 org

目录

SSM整合配置逻辑:

由于我们是web项目,所以要打成war包放到Tomcat服务器上面的,因此整个配置文件的入口是web.xml

web.xml文件中:

配置DispatcherServlet时指定了SpringMVC的配置文件
设置监听器,配置在服务启动时加载Spring的配置文件,通过context-param设置Spring配置文件的路径
注意:配置时要是用类路径
Spring的配置文件:

配置SqlSessionFactoryBean时,指定了mybatis的配置文件
SSM整合.drawio

第一步:引入依赖

引入junit测试依赖,springmvc依赖,springtest依赖,springJDBC依赖,mybatis依赖,mybatis-spring依赖,mysql-connector-java数据库驱动依赖,druid数据库连接池依赖,javax.servlet-api依赖,

jackson依赖解决对象与json的转化

<dependencies>
    <!--    引入junit依赖-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.1</version>
        <scope>test</scope>
    </dependency>
    
    <!--    引入springmvc依赖-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.2.12.RELEASE</version>
    </dependency>
    
    <!--        引入springtest依赖-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>5.2.12.RELEASE</version>
    </dependency>
    
    <!--        引入springJDBC依赖-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.2.12.RELEASE</version>
    </dependency>

    <!--        引入mybatis依赖-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.9</version>
    </dependency>
    
    <!--        引入mybatis-spring依赖-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>2.0.7</version>
    </dependency>
    
    <!--        引入数据库驱动依赖-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.30</version>
    </dependency>
    
    <!--        引入数据库连接池依赖-->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.2.16</version>
    </dependency>
    
    <!--        引入servlet依赖-->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
    </dependency>
    
    <!--添加jackson依赖包,实现对象与json的转换。(解决@ResponseBody返回json问题)-->
    <!--        jackson-annotations\jackson-core\jackson-databind-->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.14.2</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.14.2</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.14.2</version>
    </dependency>
</dependencies>

第二步:添加配置文件

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:contxt="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">

    <!--    第一步:扫描控制层组件-->
    <!--    1.扫描controller包-->
    <contxt:component-scan base-package="com.woniuxy.controller"/>
    <!--    2.注解驱动配置-->
    <mvc:annotation-driven/>
    <!--    3.静态资源的访问交给servlet-->
    <mvc:default-servlet-handler/>
</beans>

db.properties

jdbc.username=root
jdbc.password=123456
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/community_sys?characterEncoding=UTF-8

applicationContext.xml

  1. 开启注解扫描,扫描service包
  2. 加载db.properties配置文件
  3. 配置连接池,指定数据库连接参数
  4. 把SqlSessionFactory对象的创建交给Spring管理
  5. 映射扫描配置,扫描dao接口所在的包,自动对该包下所有的接口生成代理对象
  6. 配置事务管理器
  7. 开启事务的注解驱动
<?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: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/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!--    Spring整合mybatis-->
    <!--    1.开启注解扫描,扫描service包(除了控制层)-->
    <context:component-scan base-package="com.woniuxy.service"/>
        <!--排除对控制层的扫描-->
<!--        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>-->
<!--    </context:component-scan>-->

    <!--    2.加载db.properties配置文件-->
    <context:property-placeholder location="classpath:db.properties"/>

    <!--    3.配置连接池,指定数据库连接参数-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

    <!--    4.设置将下划线映射为驼峰-->
<!--    <bean class="org.mybatis.spring.SqlSessionFactoryBean" id="factory">-->
<!--        <property name="dataSource" ref="dataSource"/>-->
<!--        <property name="configuration">-->
<!--            <bean class="org.apache.ibatis.session.Configuration">-->
<!--                <property name="mapUnderscoreToCamelCase" value="true"/>-->
<!--            </bean>-->
<!--        </property>-->
<!--    </bean>-->

    <!--    5、把SqlSessionFactory对象的创建,交给Spring管理-->
    <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--        注入连接池-->
        <property name="dataSource" ref="dataSource"/>
        <!--        加载映射文件-->
        <property name="mapperLocations" value="classpath:com/woniuxy/mapper/*.xml"/>
    </bean>

    <!--    6、映射扫描配置,扫描dao接口所在的包,自动对该包下所有的接口生成代理对象-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!--注入工厂对象; value 指定的是bean的名称。-->
        <!--        这个value的名称对应把SqlSessionFactory对象的创建的id-->
        <property name="sqlSessionFactoryBeanName" value="sessionFactory"/>
        <!--实例化接口对象且会加入ioc容器(对接口生成代理)-->
        <property name="basePackage" value="com.woniuxy.mapper"/>
    </bean>

    <!--    7.配置事务管理器-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!--        name和ref的名称要与连接池的name相同-->
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <!--
       开启事务的注解驱动
      将使用注解@Transactional标识的方法或类中所有的方法进行事务管理
  -->
    <tx:annotation-driven transaction-manager="transactionManager"/>

</beans>

配置mapper的xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
    namespace
       1、名称空间,用来指定当前配置文件对哪个接口进行映射
       2、所以这里指定接口类全名
-->
<mapper namespace="mapper接口的全路径">
    
</mapper>

配置web.xml

  1. 设置spring配置文件自定义的位置和名称:contextConfigLocation
  2. 配置编码过滤器:CharacterEncodingFilter
  3. 隐藏提交方式的过滤器,让页面支持put,delete请求:HiddenHttpMethodFilter
  4. 设置spring监听器,在服务启动时加载spring配置文件:ContextLoaderListener
  5. 设置SpringMVC前端控制器:DispatcherServlet
    1. 指定springmvc配置文件的路径
    2. tomcat启动时候就创建当前servlet;数字越小优先级越高
    3. 拦截所有请求
<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Archetype Created Web Application</display-name>
    <!--    设置spring配置文件自定义的位置和名称-->
    <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>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <!--隐藏提交方式的过滤器,让页面支持put、delete请求-->
    <filter>
        <filter-name>hiddenHttpMethodFilter</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>hiddenHttpMethodFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!--设置Spring的监听器,在服务启动时加载spring配置文件     ContextLoaderListener-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!--SpringMVC前端控制器:DispatcherServlet-->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--指定springmvc配置文件路径-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <!--tomcat启动时候就创建当前servlet;数字越小越先创建-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <!--拦截所有的请求;不包含jsp请求-->
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

项目结构:

image-20230225175911179

标签:xml,web,配置文件,--,spring,SSM,整合,org
From: https://www.cnblogs.com/amor2818/p/17154943.html

相关文章

  • SpringBoot30 - 整合Kafka
    SpringBoot整合Kafka安装​ windows版安装包下载地址:https://kafka.apache.org/downloads​ 下载完毕后得到tgz压缩文件,使用解压缩软件解压缩即可使用,解压后得到如下......
  • 整合第三方技术
    整合JUnit整合过程及准备在整合JUnit时不需要勾选任何依赖1.导入测试对应的starter创建模块时,boot自动导入了starter;但在纯手写创建模块时,需要手动导入2.测试类使用@......
  • 整合jUnit4和jUnit5
    整合jUnit41.引入依赖<dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.2.6.RELEASE</version></......
  • spring整合框架
    循环引用BeanCurrentlyInCreationException当A对象需要引用B对象,而B对象也需要A对象的时候就是双向,当spring属性填充为双向注入的时候叫做循环依赖,也叫做循环引用spring......
  • vue总结与整合(走过路过,千万不要错过,进来看看,全篇皆是精华)
    vue总结与整合vue简介 vue是一款用于构建用户界面的js框架,基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助开发者高效地开发用户界面。......
  • ssm学习笔记23001-mybatis-config.xml配置详解
    mybatis-config.xml是mybatis的配置文件,具体的一些标签和属性如下:需要注意的是1、配置项是有顺序要求的2、简写的配置有要求:例如类型别名,如果要简写,需要省掉alias属性,m......
  • ssm学习笔记23001-spring+mybatis修改删除和查询
    spring+mybatis修改删除和查询1、在UserMapper接口类中,创建接口在UserMapper接口类中,创建接口packagecom.wjw.mybatis.mapper;importcom.wjw.mybatis.pojo.User;......
  • 整合mybatis-spring
    一.整合mybatis步骤:第一步:导入相关的jar包:junitmybatismysql数据库spring相关的aop植入mybatis-spring【新包,兼容mybatis和spring】<dependencies>......
  • Springboot 整合 Swagger3
    Springboot整合Swagger环境版本服务名称版本号Springboot2.7.8(GA)Java1.8导入依赖方式一:<dependency><groupId>io.springfox</groupId>......
  • 分布式任务调度框架xxl-job入门(Cron表达式、环境搭建、整合SpringBoot、广播任务与动
    (目录)xxl-Job分布式任务调度1.概述1.1什么是任务调度我们可以先思考一下业务场景的解决方案:某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。某银行......