zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    vue中使用axios
    vue中报错Do not use built-in or reserved HTML elements as component id details
    人月神话阅读笔记01
    学习进度周总结(第五周)
    石家庄地铁系统开发(java web版)(一)
    梦断代码阅读笔记03
    二维数组求最大子数组
    学习进度周总结
    梦断代码阅读笔记02
    二维数组
  • 原文地址:https://www.cnblogs.com/skyzou/p/14061985.html
Copyright © 2011-2022 走看看