使用工具——eclipse 4.11
文章目录
搭建一个基础项目
直接用工具创建一个maven项目,得到一个纯净的maven项目
pom.xml内容
<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>
<groupId>com.ny224</groupId>
<artifactId>testMavenWeb</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>testMavenWeb Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>testMavenWeb</finalName>
</build>
</project>
之后在pom中添加一些常用依赖包,这是添加后的pom文件配置
<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>
<groupId>com.ny224</groupId>
<artifactId>testMavenWeb</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>testMavenWeb</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<!-- 项目的基本属性配置 -->
<properties>
<!-- 编码格式 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!--启动类 -->
<start-class>testMavenWeb.App</start-class>
</properties>
<dependencies>
<!-- 测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!--新增:web应用基本环境配置 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--新增:常用配置 -->
<!--Tomcat支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!--scope的值:详细见下方备注2 -->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--使用JSP必要依赖 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!--JSP标签库 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!--Spring aop支持:面向切面编程 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
</dependency>
<!--事务控制Trancactions -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</dependency>
<!--对象关系映射 形成orm框架 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
</dependency>
<!--jdbc支持 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<!--json支持 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.3</version>
</dependency>
<!-- json -->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.2.3</version>
<classifier>jdk13</classifier>
</dependency>
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<!--构建设置,主要包含两个部分:plugins设置构建的插件和resources排除或者删除资源文件 -->
<build>
<finalName>testMavenWeb</finalName>
<!--使用的插件列表 此处直接用父项目的plugins -->
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
<!--项目相关的所有资源路径列表,例如和项目相关的配置文件、属性文件,这些资源被包含在最终的打包文件里。 -->
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<includes>
<include>*</include>
</includes>
</resource>
</resources>
</build>
</project>
现在的项目目录结构应该是这样的
下面来创建上图中的application.yml,与TestController.java文件
application.yml:
server:
port: 12345 ##端口号
servlet:
context-path: /myTest ##url项目名
tomcat:
uri-encoding: UTF-8
注意该文件为路径,默认设置下,只能以这个名字(application.yml)放在这个路径下被识别。
TestController.java:
import java.util.HashMap;
import java.util.Map;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import net.sf.json.JSON;
import net.sf.json.JSONObject;
@RestController
@EnableAutoConfiguration
@RequestMapping("/test")
public class TestController {
//http://localhost:12345/myTest/test/testMethod
@RequestMapping("/testMethod")
public JSON testMethod() {
System.out.println("12345");
Map res = new HashMap();
res.put("data", 321);
return JSONObject.fromObject(res);
}
//http://localhost:12345/myTest/test/testMethod2
@RequestMapping("/testMethod2")
public String testMethod2() {
return "123";
}
//http://localhost:12345/myTest/test/testMethod3?param1=aaa
@RequestMapping("/testMethod3")
public String testMethod3(String param1) {
System.out.println(param1);
return param1;
}
//http://localhost:12345/myTest/test/testMethod4?alias_name=aaa
@RequestMapping("/testMethod4")
public String testMethod4(@RequestParam(required = false, defaultValue = "default_value", value = "alias_name") String param1) {
//required 是否必选; defaultValue 默认值; value 别名
System.out.println(param1);
return param1;
}
//访问页面
@RequestMapping("/testView")
public ModelAndView testView(String param1, ModelAndView model) {
System.out.println(555);
model.addObject("p1", "pp1");
model.setViewName("/test/Test.html");
return model;
}
}
上面的是最基本的web项目搭建,下面开始加一些插件
spring集成thymeleaf模板引擎
引入依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>3.0.11.RELEASE</version>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring4</artifactId>
<version>3.0.11.RELEASE</version>
</dependency>
加入如下配置
spring:
thymeleaf:
prefix: classpath:/templates/ ##资源文件路径
suffix: .html
mode: LEGACYHTML5
encoding: UTF-8
content-type: text/html
cache: false
java代码
@RequestMapping("/testTemplateView")
public ModelAndView testTemplateView(String param1, ModelAndView model) {
model.addObject("msg", "<b>AAA</b>");
model.setViewName("tm/Test.html");
return model;
}
编写Test.html
注意目录结构
Test.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>thymeleaf</title>
</head>
<body>
<h1 th:text="${msg}"></h1><div>
[[${msg}]]___[(${msg})]
</body>
<script th:inline="javascript">
var str = '<sfsdf [[${msg}]]>';
var str2 = "<sfsdf [(${msg})]>";
</script>
</html>
在经过thymeleaf渲染后,实际输出的文档源代码为
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>thymeleaf</title>
</head>
<body>
<h1><b>AAA</b></h1><div>
<b>AAA</b>___<b>AAA</b>
</body>
<script>
var str = '<sfsdf "<b>AAA<\/b>">';
var str2 = "<sfsdf <b>AAA</b>>";
</script>
</html>
页面效果
记录一个调试时遇到的问题:找不到资源文件,有可能是templates文件夹未加入资源文件夹中(source folders)
前端访问静态资源
静态资源默认的根目录是在
/src/main/resources/static
建一个js文件用作测试
在html中,传统的写法要这样引用
<script src="/myTest/testJs.js" type="text/javascript" charset="utf-8"></script>
注:myTest是我的项目根路径
thymeleaf是一个模板渲染引擎,可以自动获取项目根路径。url可以写成动态的。
<script th:src="@{/testJs.js}" type="text/javascript" charset="utf-8"></script>
与上面语句等效。
设置日志级别
resources下新建application.properties文件,写入配置
logging.level.root=DEBUG
logging.level.org.springframework=OFF
logging.level.org.hibernate=OFF
logging.level.org.mybatis=OFF
logging.level.com.netflix=OFF
logging.level.org.apache=OFF
logging.level.springfox.documentation=OFF
logging.level.com.sun.jersey=OFF
集成mybatis
mybatis官网介绍:
http://mybatis.org/spring/zh/index.html
mybatis的一些配置项
https://mybatis.org/mybatis-3/configuration.html#properties
阿里druid数据源介绍博客
https://blog.csdn.net/wangmx1993328/article/details/81865153
yml中加入以下配置
spring:
datasource:
druid:
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/blog_temp?useSSL=false
initial-size: 1
min-idle: 10
max-active: 50
max-wait: 10000
testWhileIdle: true
timeBetweenEvictionRunsMillis: 60000
testOnBorrow: false
filters: stat,wall,log4j
mybatis:
mapper-locations: classpath:/mapper/*/*xml
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
jdbcTypeForNull: VARCHAR
这些基本算是最简配置。如果想自定义日志配置,可以参考一下我写的这篇文章
https://blog.csdn.net/nayi_224/article/details/102841821
一个示例sql文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="testMavenWeb.com.nayi224.mapper.TestMapper">
<select id="testQueryList" resultType="java.util.HashMap">
<![CDATA[
select #{data} lv
]]>
</select>
</mapper>
接口文件
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TestMapper {
public List<Map<String, String>> testQueryList(Map<String, String> daoMap);
}
注入实例
@Autowired
private TestMapper testMapper;
引入分页插件pagehelper
mybatis配置项
https://mybatis.org/mybatis-3/zh/configuration.html
https://pagehelper.github.io/docs/howtouse/
添加引用
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.10</version>
</dependency>
注意:这里使用的版本是5.1.10,有可能与老版本的不相兼容。
一些基础的yml配置
pagehelper:
#helperDialect: mysql
reasonable: true
supportMethodsArguments: true
#params: count=countSql
使用PageHelper
使用PageHelper的静态方法进行分页
java代码
PageHelper.startPage(2, 5);
List<Map<String, String>> list1 = testMapper.testQueryList(null);
System.out.println("list1 : " + list1.toString());
System.out.println("list1 all : " + testMapper.testQueryList(null));
startPage方法的两个参数分别为页数和每页的长度
上面代码在运行后控制台输出为
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1ab43696] was not registered for synchronization because synchronization is not active
Cache Hit Ratio [SQL_CACHE]: 0.0
JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@1e8bb118] will not be managed by Spring
==> Preparing: WITH RECURSIVE tab1 (dt) AS (SELECT 1 UNION ALL SELECT t1.dt + 1 FROM tab1 t1 WHERE t1.dt < 20) SELECT count(0) FROM tab1
==> Parameters:
<== Columns: count(0)
<== Row: 20
<== Total: 1
==> Preparing: with recursive tab1(dt) as ( select 1 union all select t1.dt + 1 from tab1 t1 where t1.dt < 20 ) select * from tab1 LIMIT ?, ?
==> Parameters: 5(Integer), 5(Integer)
<== Columns: dt
<== Row: 6
<== Row: 7
<== Row: 8
<== Row: 9
<== Row: 10
<== Total: 5
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1ab43696]
list1 : Page{count=true, pageNum=2, pageSize=5, startRow=5, endRow=10, total=20, pages=4, reasonable=false, pageSizeZero=false}[{dt=6}, {dt=7}, {dt=8}, {dt=9}, {dt=10}]
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3ba6c3e2] was not registered for synchronization because synchronization is not active
JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@1e8bb118] will not be managed by Spring
==> Preparing: with recursive tab1(dt) as ( select 1 union all select t1.dt + 1 from tab1 t1 where t1.dt < 20 ) select * from tab1
==> Parameters:
<== Columns: dt
<== Row: 1
<== Row: 2
<== Row: 3
<== Row: 4
<== Row: 5
<== Row: 6
<== Row: 7
<== Row: 8
<== Row: 9
<== Row: 10
<== Row: 11
<== Row: 12
<== Row: 13
<== Row: 14
<== Row: 15
<== Row: 16
<== Row: 17
<== Row: 18
<== Row: 19
<== Row: 20
<== Total: 20
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3ba6c3e2]
list1 all : [{dt=1}, {dt=2}, {dt=3}, {dt=4}, {dt=5}, {dt=6}, {dt=7}, {dt=8}, {dt=9}, {dt=10}, {dt=11}, {dt=12}, {dt=13}, {dt=14}, {dt=15}, {dt=16}, {dt=17}, {dt=18}, {dt=19}, {dt=20}]
在你需要进行分页的 MyBatis 查询方法前调用 PageHelper.startPage 静态方法即可,紧跟在这个方法后的第一个MyBatis 查询方法会被进行分页。
可以看出是先对sql进行了改写,查出了count,之后再进行语句的。处理大数据量时要远优于将数据全查出的物理分页。
安全性
在对PageHelper.startPage进行设置后,紧跟着的查询语句会被分页处理,这是基于ThreadLocal
实现的,也就是说,在特定情况下会出现异常。
例如下面这种代码
PageHelper.startPage(1, 10);
List<Country> list;
if(param1 != null){
list = countryMapper.selectIf(param1);
} else {
list = new ArrayList<Country>();
}
存在分页设置无法被消费的情况,这可能会导致出现莫名其妙的分页。建议对查询方法进行一定的封装后再使用。
获取分页信息
回过头开看之前打出的日志,返回的list的输出结果为
list1 : Page{count=true, pageNum=2, pageSize=5, startRow=5, endRow=10, total=20, pages=4, reasonable=false, pageSizeZero=false}[{dt=6}, {dt=7}, {dt=8}, {dt=9}, {dt=10}]
基本可以猜得到,mybatis框架对结果集进行了封装。它的实际返回类型为com.github.pagehelper.Page
,是一个继承了ArrayList的封装类。
如果想获取具体的分页信息,需要转型,比如获取数据总数的话
List<Map<String, String>> list1 = testMapper.testQueryList(null);
System.out.println(((com.github.pagehelper.Page)list1).getTotal());
使用RowBounds分页
List<Map<String, String>> list1 = testMapper.testQueryList(null, new RowBounds(1, 10));
System.out.println("list1 : " + list1.toString());
最后再发一个现在的配置文件
<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>
<groupId>com.ny224</groupId>
<artifactId>testMavenWeb</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>testMavenWeb</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<!-- 项目的基本属性配置 -->
<properties>
<!-- 编码格式 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!--启动类 -->
<start-class>testMavenWeb.App</start-class>
</properties>
<dependencies>
<!-- 测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!--新增:web应用基本环境配置 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--新增:常用配置 -->
<!--Tomcat支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!--scope的值:详细见下方备注2 -->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--使用JSP必要依赖 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!--JSP标签库 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!--Spring aop支持:面向切面编程 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
</dependency>
<!--事务控制Trancactions -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</dependency>
<!--对象关系映射 形成orm框架 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
</dependency>
<!--jdbc支持 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<!--json支持 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.3</version>
</dependency>
<!-- json -->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.2.3</version>
<classifier>jdk13</classifier>
</dependency>
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>3.0.11.RELEASE</version>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring4</artifactId>
<version>3.0.11.RELEASE</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.1.0</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.10</version>
</dependency>
</dependencies>
<!--构建设置,主要包含两个部分:plugins设置构建的插件和resources排除或者删除资源文件 -->
<build>
<finalName>testMavenWeb</finalName>
<!--使用的插件列表 此处直接用父项目的plugins -->
<!--
plugins在配置文件中的位置必须符合要求,否则会报错,顺序如下:
properties?, settings?,
typeAliases?, typeHandlers?,
objectFactory?,objectWrapperFactory?,
plugins?,
environments?, databaseIdProvider?, mappers?
-->
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- <version>1.5.9.RELEASE</version> -->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
<!--项目相关的所有资源路径列表,例如和项目相关的配置文件、属性文件,这些资源被包含在最终的打包文件里。 -->
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
</resource>
</resources>
</build>
</project>
yml
server:
port: 12345 ##端口
servlet:
context-path: /myTest ##url项目名
tomcat:
uri-encoding: UTF-8
spring:
thymeleaf:
prefix: classpath:/templates/
suffix: .html
mode: LEGACYHTML5
encoding: UTF-8
content-type: text/html
cache: false
datasource:
druid:
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/blog_temp?useSSL=false
initial-size: 1
min-idle: 10
max-active: 50
max-wait: 10000
testWhileIdle: true
timeBetweenEvictionRunsMillis: 60000
testOnBorrow: false
filters: stat,wall,log4j
mybatis:
mapper-locations: classpath:/mapper/*/*xml
config-location: classpath:mybatis/mybatis-config.xml
#configuration:
#log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#log-impl: org.apache.ibatis.logging.log4j.Log4jImpl
#log-impl: testMavenWeb.log.CustomLog
#jdbcTypeForNull: VARCHAR
pagehelper:
#helperDialect: mysql
reasonable: true
supportMethodsArguments: true
#params: count=countSql
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app
version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>web</display-name>
<!-- 首页定义 -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
121212dsfd
<!-- springmvc的servlet定义 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- 注册字符集过滤器 -->
<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>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.xml</param-value>
</context-param>
</web-app>
mybatis-config.xml
<?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>
<settings>
<setting name="jdbcTypeForNull" value="VARCHAR" />
<setting name="logImpl" value="testMavenWeb.log.CustomLog" />
</settings>
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 使用下面的方式配置参数,后面会有所有的参数介绍 -->
</plugin>
</plugins>
</configuration>
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.annotation.ImportResource;
@SpringBootApplication
@ImportResource(locations={"classpath:spring.xml"})
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}