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
原文地址:https://www.cnblogs.com/skyzou/p/14061985.html