目录
SSM整合配置逻辑:
由于我们是web项目,所以要打成war包放到Tomcat服务器上面的,因此整个配置文件的入口是web.xml
web.xml文件中:
配置DispatcherServlet时指定了SpringMVC的配置文件
设置监听器,配置在服务启动时加载Spring的配置文件,通过context-param设置Spring配置文件的路径
注意:配置时要是用类路径
Spring的配置文件:
配置SqlSessionFactoryBean时,指定了mybatis的配置文件
第一步:引入依赖
引入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
- 开启注解扫描,扫描service包
- 加载db.properties配置文件
- 配置连接池,指定数据库连接参数
- 把SqlSessionFactory对象的创建交给Spring管理
- 映射扫描配置,扫描dao接口所在的包,自动对该包下所有的接口生成代理对象
- 配置事务管理器
- 开启事务的注解驱动
<?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
- 设置spring配置文件自定义的位置和名称:contextConfigLocation
- 配置编码过滤器:CharacterEncodingFilter
- 隐藏提交方式的过滤器,让页面支持put,delete请求:HiddenHttpMethodFilter
- 设置spring监听器,在服务启动时加载spring配置文件:ContextLoaderListener
- 设置SpringMVC前端控制器:DispatcherServlet
- 指定springmvc配置文件的路径
- tomcat启动时候就创建当前servlet;数字越小优先级越高
- 拦截所有请求
<!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>
项目结构:
标签:xml,web,配置文件,--,spring,SSM,整合,org From: https://www.cnblogs.com/amor2818/p/17154943.html