SpringBoot整合thymeleaf+代码生成器(最全,最详细)

引言

先吐槽一下,网上一大堆的帖子在我整合的时候无法解答我遇到的问题(莫非是脸黑?),最后还是找到了问题的解决点,真是幸运。

正文

推荐直接上我的git下载源码,麻烦给个星星,谢谢啦。

先上POM代码



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.6.RELEASE
         
    
    com.hjh.springboot.one
    demo
    0.0.1-SNAPSHOT
    demo
    Demo project for Spring Boot

    
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            org.springframework.boot
            spring-boot-starter-thymeleaf
        
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.3.2
        
        
        
            com.github.pagehelper
            pagehelper-spring-boot-starter
            1.2.5
        
        
        
            com.alibaba
            druid-spring-boot-starter
            1.1.9
        
        
        
            mysql
            mysql-connector-java
            5.1.45
            runtime
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
            
            
                org.mybatis.generator
                mybatis-generator-maven-plugin
                1.3.6
                
                    
                    true
                
                
                    
                    
                        mysql
                        mysql-connector-java
                        5.1.45
                        runtime
                    
                
            
        
        
            
                
                src/main/resources
                
                
                    **/*.yml
                    **/*.properties
                    **/*.xml
                
                false
            
            
                
                src/main/resources
            
        
    


注意:

很多人可能疑惑为什么有两个 src/main/resources,在这里,我必须吐槽一下Springboot找静态资源的方式(网上很多说明,我这里就不解释了,反正我集成后如果不加上这行代码就会一直报BUG:thymeleaf找不到HTML,404);

上结构图:

SpringBoot整合thymeleaf+代码生成器(最全,最详细)_第1张图片

上配置文件代码

application.properties

#配置thymeleaf缓存开发期间先关闭,否则影响测试
spring.thymeleaf.cache=false
spring.thymeleaf.prefix=classpath:templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=LEGACYHTML5
spring.thymeleaf.encoding=UTF-8
#配置端口号以及拦截策略
server.port=8080
#开始配置mysql连接驱动以及数据库连接池参数
spring.datasource.name=mysql_test
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.filters=stat
spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
spring.datasource.druid.username=root
spring.datasource.druid.password=root
#这里可以不用配置,有默认参数,根据自己需求
spring.datasource.druid.initial-size=1
spring.datasource.druid.min-idle=1
spring.datasource.druid.max-active=20
spring.datasource.druid.max-wait=6000
spring.datasource.druid.time-between-eviction-runs-millis=60000
spring.datasource.druid.min-evictable-idle-time-millis=300000
spring.datasource.druid.validation-query=SELECT 'x'
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.test-on-borrow=false
spring.datasource.druid.test-on-return=false
spring.datasource.druid.pool-prepared-statements=false
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
#开始配置mybatis
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.hjh.springboot.one.demo.pojo

generator.properties

## 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

generatorConfig.xml




    
    

    
    

        
        

        
        
            
            
            
            
        
        
        

        
        
        
        

        
        

        
        
            
            

        

至于application.yml则是空的,感兴趣的朋友可以自行学习yml的配置方式

上代码

DemoApplication(SpringBoot默认的启动器):

package com.hjh.springboot.one.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication()
@MapperScan("com.hjh.springboot.one.demo.dao")
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

@MapperScan主要是扫描接口(也就是代码生成器生成的Dao层)

Service层没什么好讲的,和正常的一样,要在实现类上加@Service(不需要加名称),我使用@Autowired(也不需要加名称)调用的Mapper(Dao层的接口直接使用,不用加任何配置),代码生成器有一系列的增删查改代码,支持简单的条件筛选和查询,也可以join表。其实最好可以新建DTO和新的XML去完成复杂的业务查询。

控制器要使用@Controller,在方法上我使用的是@RequestMapping。返回页面名称就行,去掉后缀,因为在配置文件已经拼接了前缀和后缀。

最后补上启动代码生成器的位置

SpringBoot整合thymeleaf+代码生成器(最全,最详细)_第2张图片

总结

虽然遇到了找不到页面(404)和500,但是最后都解决了。
开发流程就是:
启动代码生成器生成dao,xml,pojo–>写业务代码(Service)–>写web,并返回数据给页面
最后就是调试:
DEBUG模式启动DemoApplication–>访问接口

注意:

如果修改了HTML的代码,记得Ctrl+F9刷新(build)IDEA,光F5刷新浏览器是没用的(数据并不会发生改动)

最后:祝大家开开心心每一天

你可能感兴趣的:(后端)