IDEA版本:2023.3.4专业版
引入依赖:Spring Web、Thymeleaf、Spring Data JPA
记录错误
笔者最近在学习Spring 实战(第六版)和Spring Boot实战(第四版)这两本书,在创建项目后发现我的配置文件不为空且resource下没有templates文件夹,自行创建后在浏览器中也无法访问templates下的文件如果在static(自动生成的)中也需要加入文件后缀.html,配置文件中的thymeleaf配置没有生效。
一、项目的目录结构

二、自动生成的配置文件
一开始注释都是乱码,可以通过设置->搜索文件编码->找到属性文件的默认编码->选中UTF-8->点击应用、确定即可。
# THYMELEAF (ThymeleafAutoConfiguration)
# 开启模板缓存(默认值: true )
spring.thymeleaf.cache=true
# 检查模板是否存在,然后再呈现
spring.thymeleaf.check-template=true
# 检查模板位置是否正确(默认值 :true )
spring.thymeleaf.check-template-location=true
#Content-Type 的值(默认值: text/html )
spring.thymeleaf.content-type=text/html
# 开启 MVC Thymeleaf 视图解析(默认值: true )
spring.thymeleaf.enabled=true
# 模板编码
spring.thymeleaf.encoding=UTF-8
# 要被排除在解析之外的视图名称列表,⽤逗号分隔
spring.thymeleaf.excluded-view-names=
# 要运⽤于模板之上的模板模式。另⻅ StandardTemplate-ModeHandlers( 默认值: HTML5)
spring.thymeleaf.mode=HTML5
# 在构建 URL 时添加到视图名称前的前缀(默认值: classpath:/templates/ )
spring.thymeleaf.prefix=classpath:/templates/
# 在构建 URL 时添加到视图名称后的后缀(默认值: .html )
spring.thymeleaf.suffix=.html
# 应用服务 WEB 访问端口
server.port=8080
笔者因为选中了JPA依赖项所以需要连接数据库,所用数据库为MySQL,JPA默认为H2数据库,自动引入的依赖是H2,所以需要自行在pom文件中引入MySQL依赖并在配置文件中配置,如果构建类型是Gradle则需要在build.gradle中引入MySQL依赖项,不过也可以在创建项目时选择依赖项就选中MySQL,就不需要自己引入但仍然需要配置
spring.datasource.url=jdbc:mysql://localhost:3306/book?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
- 如果构建类型是
Gradle,可能会遇到gradle下载缓慢的问题,可以参考 idea 2023 安装配置 Gradle8.4 - 如果官网下载无反应,可以自己在网上找资源下载,例如【极速下载】gradle各版本快速下载地址大全
正确步骤
一、通过IDEA新建项目

- 请确保生成器选中了
Spring Initializr(社区版没有该选项,可以直接新建项目,自行在pom文件中添加所需依赖,该生成器就是帮忙在pom中自动添加了第二步中你所勾选的依赖而已) - 请确保服务器URL为
start.spring.io(笔者就是错在这里,之前的是start.aliyun.com,如果有大佬知道原因烦请告知一下,万分感谢!)

二、选择依赖项
点击下一步,进入下图所示界面,根据需要选择依赖项,如果没有可以创建完成后自行在pom.xml中添加对应的依赖项

- 红框中可选择依赖项,蓝框中会显示已选依赖项
- 上方可以选择Spring Boot的版本,可供选择的只有目前较新的版本

三、创建成功
点击创建即可,查看项目目录结构,templates已存在,与书中所示目录结构一致且配置文件仅有一行spring.application.name=readinglist,应该是声明项目名称的

1176

被折叠的 条评论
为什么被折叠?



