SpringBoot整合Spring、SpringMVC、MyBatis、Druid、Thymeleaf
SpringBoot整合Spring、SpringMVC、MyBatis、Druid、Thymeleaf
一、创建一个基础的SpringBoot项目,我这里使用的是SpringBoot 2.4.0版本。
1.配置pom.xml:
<dependencies>
<!-- springmvc等web项目所需依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
</dependency>
<!-- druid连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<!-- thymeleaf -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- 单元测试相关依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
2.SpringBoot项目配置中心—application.yml(或application.properties)
# 服务器配置
server:
# 配置端口号,默认为8080,可省略这条配置
port: 8080
# 配置thymeleaf
spring:
thymeleaf:
# 模板文件的前缀,一般为模板的存放位置,如果存放位置为classpath:/templates/,则可省略这条配置
prefix: classpath:templates/
# 模板文件的后缀名,可不配置,默认为.html
suffix: .html
# 是否启用缓存,开发环境建议设置为false,这样修改前端页面时不用重启服务就能看到页面的变化
cache: false
# 配置数据源
datasource:
# 数据库驱动
driver-class-name: com.mysql.jdbc.Driver
# 数据库连接URL
url: jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimeZone=UTC
# 数据库用户名
username: root
# 数据库密码
password: root
# 指定数据源类型,如果只有一个数据源可省略配置,但一般建议配置
type: com.alibaba.druid.pool.DruidDataSource
# 配置mybatis
mybatis:
# 实体类包路径,如果Mapper.xml中不使用别名,如果使用类似于com.test.pojo.Emp这样的类全路径则不需要配置
type-aliases-package: com.demo.pojo
# Mapper.xml的存放路径,如果Mybatis使用纯注解方式,则不需要配置
mapper-locations: classpath:/mapper/*Mapper.xml
二、配置mybatis
1.如果有mybatis配置文件,则在application.yml中配置:
mybatis:
# 配置mybatis配置文件位置
config-location: classpath:/sqlMapConfig.xml
2.配置mybatis扫描Mapper接口,这里有两种配置方式
第一种方式,在启动类上加一个@MapperScan注解扫描Mapper接口,如:@MapperScan(basePackages = "com.demo.mapper"),其中com.test.mapper为Mapper接口的包路径。
@SpringBootApplication
@MapperScan(basePackages = "com.demo.mapper")
public class SpringBootDemoApplication {
...
|
第二种方式,在Mapper接口上加上@Mapper注解(为了避免IDEA中使用@Autowired注解注入Mapper时报红,可以选择在Mapper接口上额外加上@Repository注解)
@Mapper
@Repository
public interface EmpMapper {
/**
* 查询所有员工信息
*/
@Select("select * from emp")
List<Emp> empList();
}
3.如果mybatis使用的不是纯注解方式,则还需要配置Mapper.xml文件的存放位置,在application.yml中配置
mybatis:
# 配置Mapper.xml文件存放位置
mapper-locations: classpath:/mapper/*Mapper.xml
三、配置Spring
SpringBoot项目中不需要额外进行Spring的配置,因为在启动类上@SpringBootApplication注解包含了@ComponentScan注解,并且默认扫描SpringBoot启动类当前包及所有子包中的类。
四、配置SpringMVC
SpringBoot项目中如果要配置SpringMVC,可在application.yml中进行配置,如果没有特殊需求,则一般使用默认的配置(也就是不做任何配置)
五、配置Druid连接池
以下配置可根据项目需求进行配置,不做任何配置也能使用:
spring:
# 连接池配置
druid:
# 初始化大小,最小,最大
initial-size: 5
min-idle: 5
max-active: 20
# 配置获取连接等待超时的时间
max-wait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位毫秒
time-between-eviction-runs-millis: 60000
# 配置一个连接在池中最小生存时间
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1 FROM sys_user
test-while-idle: true
test-on-borrow: false
test-on-return: false
# 打开 PSCache,并且指定每个连接上 PSCache 的大小
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
# 配置监控统计拦截的 Filter,去掉后监控界面 SQL 无法统计,wall 用于防火墙
filters: stat,wall,log4j
# 通过 connection-properties 属性打开 mergeSql 功能;慢 SQL 记录
connection-properties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
# 配置 DruidStatFilter
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: .js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*
# 配置 DruidStatViewServlet
stat-view-servlet:
url-pattern: /druid/*
# IP 白名单,没有配置或者为空,则允许所有访问
allow: 127.0.0.1
# IP 黑名单,若白名单也存在,则优先使用
deny: 192.168.100.122
# 禁用 HTML 中 Reset All 按钮
reset-enable: false
# 登录用户名/密码
login-username: root
login-password: root
六、配置Thymeleaf
以下配置可省略,请根据项目实际情况进行配置:
# 配置thymeleaf
spring:
thymeleaf:
# 模板文件的前缀,一般为模板的存放位置,如果存放位置为classpath:/templates/,则可省略这条配置
prefix: classpath:templates/
# 模板文件的后缀名,可不配置,默认为.html
suffix: .html
# 是否启用缓存,开发环境建议设置为false,这样修改前端页面时不用重启服务就能看到页面的变化
cache: false