在使用 JAVA 开发Web应用程序的过程中,我们可能会用到不同的框架,在使用不同的框架组合进行开发的过程中,这些框架之间需要添加对应的配置文件,这里我们总结了一些开发中常见的配置方案.
1. Spring/SpringMVC/MyBatis
1.1 POM依赖配置
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>project.templates</groupId><artifactId>ssm</artifactId><version>1.0.0</version><packaging>war</packaging><!-- 依赖设置 --><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><druid.version>1.2.1</druid.version><fastjson.version>1.2.72</fastjson.version><slf4j.version>1.7.30</slf4j.version><log4j2.version>2.13.3</log4j2.version><jsp.version>2.2</jsp.version><jstl.version>1.2</jstl.version><taglibs.version>1.1.2</taglibs.version><servlet.version>4.0.1</servlet.version><aop.version>1.9.5</aop.version><mysql.version>8.0.17</mysql.version><mybatis.version>3.5.6</mybatis.version><mybatis-spring.version>2.0.5</mybatis-spring.version><pagehelper.version>5.1.2</pagehelper.version><spring.version>5.2.9.RELEASE</spring.version></properties><dependencies><!-- Spring 配置 --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><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><!-- AOP 必须 --><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>${aop.version}</version></dependency><!-- MyBatis配置 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>${mybatis-spring.version}</version></dependency><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>${pagehelper.version}</version></dependency><!-- Servlet --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>${servlet.version}</version><scope>provided</scope></dependency><!-- JSP --><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>${jsp.version}</version><scope>provided</scope></dependency><!-- JSTL --><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>${jstl.version}</version></dependency><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>${taglibs.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>${druid.version}</version></dependency><!-- slf4j依赖程序 --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>jcl-over-slf4j</artifactId><version>${slf4j.version}</version><scope>runtime</scope></dependency><!-- lo4j2依赖程序 --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>${log4j2.version}</version><scope>runtime</scope></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-web</artifactId><version>${log4j2.version}</version><scope>runtime</scope></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>${log4j2.version}</version><scope>runtime</scope></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>${log4j2.version}</version><scope>runtime</scope></dependency><!-- FastJSON 处理响应数据格式 --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version></dependency></dependencies><build><finalName>test</finalName><plugins><plugin><artifactId>maven-war-plugin</artifactId><version>3.2.2</version><configuration><includeEmptyDirectories>true</includeEmptyDirectories></configuration></plugin><plugin><groupId>org.eclipse.jetty</groupId><artifactId>jetty-maven-plugin</artifactId><version>9.4.43.v20210629</version><configuration><scanIntervalSeconds>10</scanIntervalSeconds><httpConnector><port>9999</port></httpConnector><webApp><contextPath>/test</contextPath></webApp></configuration></plugin></plugins></build></project>
1.2 配置数据源
jdbc.url=jdbc:mysql://localhost:3306/数据库名称?zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8jdbc.username=rootjdbc.password=123456jdbc.driver=com.mysql.cj.jdbc.Driver
在项目中添加 jdbc.properties 配置文件可以方便进行数据源的设置,如果在Spring配置文件中直接进行配置,对于链接地址中的 & 需要进行转义的处理,不推荐。
1.3 spring/mybatis 整合
<?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/beanshttps://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttps://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttps://www.springframework.org/schema/tx/spring-tx.xsd"><!-- 数据源 --><context:property-placeholder location="classpath:jdbc.properties"/><bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /><property name="driverClassName" value="${jdbc.driver}" /></bean><!-- 事务处理 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean><!-- 事务开启注解支持 --><tx:annotation-driven transaction-manager="transactionManager"/><!-- 开启注解扫描 --><context:component-scan base-package="注解扫描包"><context:exclude-filter type="annotation" expression="排除扫描的包"/></context:component-scan><!-- 创建工厂对象 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"></property><property name="mapperLocations" value="classpath:mybatis/mappers/*Mapper.xml"></property></bean><!-- 接口扫描器 --><bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="DAO代码所在包"></property></bean></beans>
在项目资源路径下添加 spring.xml 文件,其中包含数据源、事务处理、SQL映射文件地址等。
1.4 spring/springmvc 整合
<?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:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttps://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 注解扫描 --><context:component-scan base-package="控制层代码所在包" /><!-- JSP 视图解析 --><bean id="jspviewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/"/><property name="suffix" value=".jsp"/></bean><mvc:annotation-driven><mvc:message-converters register-defaults="true"><!-- json的解析 --><bean id="fastJsonHttpMessageConverter"class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"><property name="supportedMediaTypes"><list><value>application/json;charset=UTF-8</value></list></property></bean></mvc:message-converters></mvc:annotation-driven></beans>
在项目中添加 springmvc.xml 配置文件夹,其中包含视图、JSON格式转换等。
1.5 Mybatis 配置
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><settings><setting name="logImpl" value="STDOUT_LOGGING"/></settings></configuration>
首先,在项目资源路径下新建 mybatis 文件夹,创建 mybatis-config.xml 文件,设置SQL执行语句输出
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="数据库处理接口(含包名)"><!-- 预定义SQL语句 --><sql id="cols"><!-- SQL列 --></sql><!-- 结果集映射,解决属性名和列名不一致的问题 --><resultMap id="唯一标识" type="实体类"><id column="主键列名" property="属性名" /><result column="列名" property="属性名"/></resultMap><!-- 添加信息 --><insert id="add" parameterType="实体类(含包名)">INSERT INTO 表名 (列名1, 列名2, ……) VALUES (#{属性1}, #{属性1}, ……)</insert><!-- 修改信息 --><update id="update" parameterType="实体类(含包名)">UPDATE 表名<trim prefix="SET" suffixOverrides=","><if test="属性 != null">列名 = #{属性},</if><if test="属性 != null">列名 = #{属性}</if></trim>WHERE 主键列名 = #{属性}</update><!-- 删除信息 --><delete id="delete" parameterType="实体类(含包名)">DELETE FROM 表名 WHERE 列名 = #{属性}</delete><!-- 获取指定的ID信息 --><select id="qryOne" resultMap="结果集标识, 自定义的结果集">SELECT <include refid="cols"></include>FROM 表名WHERE 主键列名 = #{属性}</select><!-- 按条件模糊查询信息 --><select id="qryList"resultMap="结果集标识, 自定义的结果集"parameterType="实体类(含包名)">SELECT <include refid="cols"></include>FROM 表名<where><if test="属性 != null and 属性 != ''">AND 列名 LIKE concat('%', #{属性}, '%')</if></where></select></mapper>
接下来,针对不同数据层接口,添加对应的SQL映射文件,在这里每个数据执行接口中对应的方法和对应的 SQL映射文件XML 节点中 id 的属性保持一致。
1.6 web.xml 映射
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID" version="3.0"><display-name>test</display-name><!-- 排除SpringMVC对静态资源的影响 --><servlet-mapping><servlet-name>default</servlet-name><url-pattern>/css/*</url-pattern></servlet-mapping><servlet-mapping><servlet-name>default</servlet-name><url-pattern>/js/*</url-pattern></servlet-mapping><servlet-mapping><servlet-name>default</servlet-name><url-pattern>/imgs/*</url-pattern></servlet-mapping><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><servlet><servlet-name>mvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 启动顺序,数字越小,启动越早 --><load-on-startup>1</load-on-startup><init-param><!--SpringMVC配置参数文件的位置 --><param-name>contextConfigLocation</param-name><!--默认名称为ServletName-servlet.xml --><param-value>classpath:springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>mvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>
2. Spring/SpringMVC/MyBatisPlus
2.1 POM 依赖配置
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><packaging>war</packaging><name>ssmp</name><groupId>project.templates</groupId><artifactId>ssmp</artifactId><version>1.0.0</version><!-- 依赖设置 --><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><druid.version>1.2.1</druid.version><fastjson.version>1.2.72</fastjson.version><slf4j.version>1.7.30</slf4j.version><log4j2.version>2.13.3</log4j2.version><jsp.version>2.2</jsp.version><jstl.version>1.2</jstl.version><taglibs.version>1.1.2</taglibs.version><servlet.version>4.0.1</servlet.version><aop.version>1.9.5</aop.version><mysql.version>8.0.17</mysql.version><mybatis.version>3.5.6</mybatis.version><mybatis-spring.version>2.0.5</mybatis-spring.version><mybatisplus.version>3.4.2</mybatisplus.version><spring.version>5.2.9.RELEASE</spring.version></properties><dependencies><!-- Spring 配置 --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><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><!-- AOP 必须 --><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>${aop.version}</version></dependency><!-- MyBatis配置 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>${mybatis-spring.version}</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus</artifactId><version>${mybatisplus.version}</version></dependency><!-- Servlet --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>${servlet.version}</version><scope>provided</scope></dependency><!-- JSP --><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>${jsp.version}</version><scope>provided</scope></dependency><!-- JSTL --><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>${jstl.version}</version></dependency><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>${taglibs.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>${druid.version}</version></dependency><!-- slf4j依赖程序 --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>jcl-over-slf4j</artifactId><version>${slf4j.version}</version><scope>runtime</scope></dependency><!-- lo4j2依赖程序 --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>${log4j2.version}</version><scope>runtime</scope></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-web</artifactId><version>${log4j2.version}</version><scope>runtime</scope></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>${log4j2.version}</version><scope>runtime</scope></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>${log4j2.version}</version><scope>runtime</scope></dependency><!-- FastJSON 处理响应数据格式 --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version></dependency></dependencies><build><finalName>test</finalName><plugins><plugin><artifactId>maven-war-plugin</artifactId><version>3.2.2</version><configuration><includeEmptyDirectories>true</includeEmptyDirectories></configuration></plugin><plugin><groupId>org.eclipse.jetty</groupId><artifactId>jetty-maven-plugin</artifactId><version>9.4.43.v20210629</version><configuration><scanIntervalSeconds>10</scanIntervalSeconds><httpConnector><port>9999</port></httpConnector><webApp><contextPath>/test</contextPath></webApp></configuration></plugin></plugins></build></project>
2.2 配置数据源
jdbc.url=jdbc:mysql://localhost:3306/数据库名称?zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8jdbc.username=rootjdbc.password=123456jdbc.driver=com.mysql.cj.jdbc.Driver
在项目中添加 jdbc.properties 配置文件可以方便进行数据源的设置,如果在Spring配置文件中直接进行配置,对于链接地址中的 & 需要进行转义的处理,不推荐。
2.3 spring/mybatisplus 配置
<?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/beanshttps://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttps://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttps://www.springframework.org/schema/tx/spring-tx.xsd"><!-- 数据源 --><context:property-placeholder location="classpath:jdbc.properties"/><bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /><property name="driverClassName" value="${jdbc.driver}" /></bean><!-- 事务处理 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean><!-- 事务开启注解支持 --><tx:annotation-driven transaction-manager="transactionManager"/><!-- 开启注解扫描 --><context:component-scan base-package="注解扫描包"><context:exclude-filter type="annotation" expression="排除注解扫描包"/></context:component-scan><!-- 创建工厂对象 --><bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/><property name="plugins"><array><ref bean="mybatisPlusInterceptor"/></array></property></bean><bean id="mybatisPlusInterceptor" class="com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor"><property name="interceptors"><list><ref bean="paginationInnerInterceptor"/></list></property></bean><bean id="paginationInnerInterceptor"class="com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor"><!-- 指定数据库为MySQL --><constructor-arg name="dbType" value="MYSQL"/></bean><!-- 接口扫描器 --><bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="DAO代码所在包"></property></bean></beans>
在项目资源路径下添加 spring.xml 文件,其中包含数据源、事务处理、SQL映射文件地址等。
2.4 spring/springmvc配置
<?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:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttps://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 注解扫描 --><context:component-scan base-package="控制层代码所在包" /><!-- JSP 视图解析 --><bean id="jspviewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/"/><property name="suffix" value=".jsp"/></bean><mvc:annotation-driven><mvc:message-converters register-defaults="true"><!-- json的解析 --><bean id="fastJsonHttpMessageConverter"class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"><property name="supportedMediaTypes"><list><value>application/json;charset=UTF-8</value></list></property></bean></mvc:message-converters></mvc:annotation-driven></beans>
在项目中添加 springmvc.xml 配置文件夹,其中包含视图、JSON格式转换等。
2.5 mybatis 配置
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><settings><setting name="logImpl" value="STDOUT_LOGGING"/></settings></configuration>
在项目资源路径下新建 mybatis 文件夹,创建 mybatis-config.xml 文件,设置SQL执行语句输出.
2.6 web.xml 配置
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID" version="3.0"><display-name>test</display-name><!-- 排除SpringMVC对静态资源的影响 --><servlet-mapping><servlet-name>default</servlet-name><url-pattern>/css/*</url-pattern></servlet-mapping><servlet-mapping><servlet-name>default</servlet-name><url-pattern>/js/*</url-pattern></servlet-mapping><servlet-mapping><servlet-name>default</servlet-name><url-pattern>/imgs/*</url-pattern></servlet-mapping><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><servlet><servlet-name>mvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 启动顺序,数字越小,启动越早 --><load-on-startup>1</load-on-startup><init-param><!--SpringMVC配置参数文件的位置 --><param-name>contextConfigLocation</param-name><!--默认名称为ServletName-servlet.xml --><param-value>classpath:springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>mvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>
3. SpringBoot/MyBatis
3.1 POM 依赖配置
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!-- SpringBoot 依赖 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.4.RELEASE</version><relativePath /></parent><groupId>project.templates</groupId><artifactId>spm</artifactId><version>1.0.0</version><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><druid.version>1.2.1</druid.version><fastjson.version>1.2.72</fastjson.version><slf4j.version>1.7.30</slf4j.version><log4j2.version>2.13.3</log4j2.version><mysql.version>8.0.17</mysql.version><mybatis.starter.version>2.1.3</mybatis.starter.version><pagehelper.version>1.2.3</pagehelper.version></properties><dependencies><!-- SpringBoot --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency><!-- SpringBoot Web模块 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- SpringBoot log4j2模块 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId></dependency><!-- 引入thymeleaf 依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><!--devtools热部署 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional><scope>true</scope></dependency><!-- MyBatis 配置 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.starter.version}</version></dependency><!-- MyBatis 分页插件 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>${pagehelper.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>${druid.version}</version></dependency><!-- slf4j依赖程序 --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><!-- lo4j2依赖程序 --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>${log4j2.version}</version></dependency><!-- FastJSON 处理响应数据格式 --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.3.4.RELEASE</version><configuration><fork>true</fork></configuration></plugin></plugins><resources><resource><directory>src/main/resources</directory><includes><include>static/**/**.*</include><include>mybatis/**/**.*</include><include>application.yml</include></includes></resource></resources></build></project>
3.2 系统核心配置
server:port: 系统端口servlet:context-path: /项目根路径spring:http:encoding:force: truecharset: UTF-8enabled: UTF-8mvc:static-path-pattern: /**resources:static-locations: classpath:/static/devtools:restart:enabled: true #设置开启热部署additional-paths: src/main/java #重启目录datasource:username: rootpassword: 123456url: jdbc:mysql://localhost:3306/数据库名称?zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8driver-class-name: com.mysql.cj.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSourceinitialSize: 5minIdle: 5maxWait: 60000thymeleaf:prefix: classpath:/static/suffix: .htmlmybatis:config-location: classpath:mybatis/mybatis-config.xmlmapper-locations: classpath:mybatis/mappers/*.xmlpagehelper:helperDialect: mysql
在项目下新建 application.yml 文件,其中添加如下的设置,这里包含项目运行端口、项目根路径、数据库连接、静态资源路径等常见内容。
3.3 mybatis 配置
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><settings><setting name="logImpl" value="STDOUT_LOGGING"/></settings></configuration>
首先,在项目资源路径下新建 mybatis 文件夹,创建 mybatis-config.xml 文件,设置SQL执行语句输出
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="数据库处理接口(含包名)"><!-- 预定义SQL语句 --><sql id="cols"><!-- SQL列 --></sql><!-- 结果集映射,解决属性名和列名不一致的问题 --><resultMap id="唯一标识" type="实体类"><id column="主键列名" property="属性名" /><result column="列名" property="属性名"/></resultMap><!-- 添加信息 --><insert id="add" parameterType="实体类(含包名)">INSERT INTO 表名 (列名1, 列名2, ……) VALUES (#{属性1}, #{属性1}, ……)</insert><!-- 修改信息 --><update id="update" parameterType="实体类(含包名)">UPDATE 表名<trim prefix="SET" suffixOverrides=","><if test="属性 != null">列名 = #{属性},</if><if test="属性 != null">列名 = #{属性}</if></trim>WHERE 主键列名 = #{属性}</update><!-- 删除信息 --><delete id="delete" parameterType="实体类(含包名)">DELETE FROM 表名 WHERE 列名 = #{属性}</delete><!-- 获取指定的ID信息 --><select id="qryOne" resultMap="结果集标识, 自定义的结果集">SELECT <include refid="cols"></include>FROM 表名WHERE 主键列名 = #{属性}</select><!-- 按条件模糊查询信息 --><select id="qryList"resultMap="结果集标识, 自定义的结果集"parameterType="实体类(含包名)">SELECT <include refid="cols"></include>FROM 表名<where><if test="属性 != null and 属性 != ''">AND 列名 LIKE concat('%', #{属性}, '%')</if></where></select></mapper>
接下来,针对不同数据层接口,添加对应的SQL映射文件,在这里每个数据执行接口中对应的方法和对应的 SQL映射文件XML 节点中 id 的属性保持一致。
4. SpringBoot/MyBatisPlus
4.1 POM 依赖配置
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!-- SpringBoot 依赖 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.4.RELEASE</version><relativePath /></parent><groupId>project.templates</groupId><artifactId>spmp</artifactId><version>1.0.0</version><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><druid.version>1.2.1</druid.version><fastjson.version>1.2.72</fastjson.version><slf4j.version>1.7.30</slf4j.version><log4j2.version>2.13.3</log4j2.version><mysql.version>8.0.17</mysql.version><mybatis.version>3.4.2</mybatis.version></properties><dependencies><!-- SpringBoot --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency><!-- SpringBoot Test模块 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.junit.platform</groupId><artifactId>junit-platform-launcher</artifactId><scope>test</scope></dependency><!-- SpringBoot mybatis模块 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis.version}</version></dependency><!-- SpringBoot Web模块 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- SpringBoot log4j2模块 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId></dependency><!-- 引入thymeleaf 依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><!--devtools热部署 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional><scope>true</scope></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>${druid.version}</version></dependency><!-- slf4j依赖程序 --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><!-- lo4j2依赖程序 --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>${log4j2.version}</version></dependency><!-- FastJSON 处理响应数据格式 --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><fork>true</fork></configuration></plugin></plugins><!-- 设置静态资源 --><resources><resource><directory>src/main/resources</directory><includes><include>static/**/**.*</include><include>application.yml</include><include>log4j2.xml</include></includes></resource></resources></build></project>
4.2 系统核心配置
server:port: 系统端口servlet:context-path: /项目根路径spring:http:encoding:force: truecharset: UTF-8enabled: UTF-8mvc:static-path-pattern: /**resources:static-locations: classpath:/static/devtools:restart:enabled: true #设置开启热部署additional-paths: src/main/java #重启目录datasource:username: rootpassword: 123456url: jdbc:mysql://localhost:3306/数据库名称?zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8driver-class-name: com.mysql.cj.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSourceinitialSize: 5minIdle: 5maxWait: 60000thymeleaf:prefix: classpath:/static/suffix: .htmlmybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
在项目下新建 application.yml 文件,其中添加如下的设置,这里包含项目运行端口、项目根路径、数据库连接、静态资源路径等常见内容。
