springboot-基础-thymeleaf配置+YAML语法

备份笔记。所有代码都是2019年测试通过的,如有问题请自行搜索解决!


目录

  • 配置thymeleaf
  • thymeleaf举例
  • 参数设置
  • yaml
    • 基础知识
    • YAML语法
    • 报错:Expecting a 'Mapping' node but got ''
    • 其他语法

spring boot不推荐使用jsp。thymeleaf是一个XML/XHTML/HTML5模板引擎,可以用作静态建模,thymeleaf主要以属性的方式加入到html标签重,当浏览器解析html时,如果某个属性没有,就会被忽略。所以thymeleaf的模板可以通过浏览器直接打开展示,而不用像jsp一样要启动服务器才能看到结果。这样更有利于前后端分离

配置thymeleaf

修改pom.xml文件:

  1. <parent><properties>下加上
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

  2. <dependencies>下添加一个thymeleaf依赖:

<!-- Thymeleaf  -->
		<dependency>
		    <groupId>org.springframework.boot</groupId>
		    <artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>
  1. 开启热部署(非必须):添加了这个之后,重启Spring Boot,修改任意代码,就能在控制台看到自动重启。
<!-- 热部署 -->
		<dependency>
		    <groupId>org.springframework.boot</groupId>
		    <artifactId>spring-boot-devtools</artifactId>
		    <optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
		</dependency>
  1. 修改完之后,右键项目名–maven–update project

注意:
<parent><artifactId>spring-boot-starter-parent</artifactId>
这个是一个特殊的starter,它用来提供相关的Maven默认依赖,用了它之后,常用的包依赖就可以省去version标签。

Spring Boot具体提供了哪些jar包的依赖,可以看maven本地仓库
F:\eclipse\maven\localRespository\org\springframework\boot\spring-boot-dependencies\2.1.7.RELEASE\spring-boot-dependencies-2.1.7.RELEASE.pom

thymeleaf举例

文件结构:
在这里插入图片描述
HelloController.java

package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {
	@RequestMapping("/")
	public String index(ModelMap map) {
		map.addAttribute("host", "https://www.baidu.com/");
		// 这里return就是去index.html了
		return "index";
	}
}

index.html

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8" />
    <title>index</title>
</head>
<body>
<h1 th:text="${host}">Hello World</h1>
</body>
</html>

Run as spring boot app之前,浏览器打开index.html显示的是Hello World,运行之后
在这里插入图片描述

参数设置

Thymeleaf要修改默认参数配置的话,复制要修改的属性到src/main/resources/application.properties,如修改模板文件的扩展名、类型和路径等。比如:

spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.servlet.content-type=text/html
#缓存设置为false, 这样修改之后马上生效,便于调试
spring.thymeleaf.cache=false

修改完右键项目名–maven–update project,然后再重新run as spring boot app

yaml

基础知识

由于后面配置mybaits时数据库要写的东西比较多,所以改用YAML语言来配置。

SpringBoot底层会把application.yml解析为application.properties。

在Spring Boot中多环境配置文件名需要满足application-{profile}.yml的格式,其中{profile}对应你的环境标识,比如:
application-dev.yml:开发环境
application-test.yml:测试环境
application-prod.yml:生产环境

至于哪个具体的配置文件会被加载,需要在application.yml文件中通过spring.profiles.active属性来设置,其值对应{profile}值。

所以这里我暂时在src/main/resources下写俩yml,一个是application.yml,一个是application-dev.yml

先装一个yml插件 YEditor。在Eclipse Marketplace没找到,用跟装mybatis-generator一样的方法装https://marketplace.eclipse.org/content/yedit

application-dev.yml

spring:
  thymeleaf:
    mode: HTML5
    encoding: UTF-8
    servlet:
      content-type: text/html; charset=utf-8
    cache: false

application.yml

spring: 
  profiles:
    active: dev   

YAML语法

最重要的几条:

  1. 大小写敏感
  2. 缩进代表层级关系,不能用tab,空格2或4个
  3. key: value,value前要加一个空格

报错:Expecting a ‘Mapping’ node but got ‘’

此处没有对齐。重新写一遍就可以了。注意优先采用自动补全。

其他语法

也可以使用flow格式
key:
c1: val1 ====> key: {c1: val1, c2: val2}
c2: val2

  • 属性值支持数值,字符串,boolean(true/false),数组

  • #是注释行

boolean: 
    - TRUE  #true,True都可以
    - FALSE  #false,False都可以
float:
    - 3.14
    - 6.8523015e+5  #可以使用科学计数法
int:
    - 123
    - 0b1010_0111_0100_1010_1110    #二进制表示
null:
    nodeName: 'node'
    parent: ~  #使用~表示null
string:
    - 哈哈
    - 'Hello world'  #可以使用双引号或者单引号包裹特殊字符
    - newline
      newline2    
#字符串可以拆成多行,每一行会被转化成一个空格
date:
    - 2018-02-17   
#日期必须使用ISO 8601格式,即yyyy-MM-dd
datetime: 
    -  2018-02-17T15:02:31+08:00    
#时间使用ISO 8601格式,时间和日期之间使用T连接,最后使用+代表时区
  • 一个 — 和一个 … 之间包裹的是一个文档

  • 把数字和布尔类型强转为字符串

string:
    - !!str 54321
    - !!str true
  • 将数组解析为set
    简单理解,转化的内容就是:[{Ken Griffy=58}, {Mark McGwire=65}, {Sammy Sosa=63}],重复的Sammy Sosa去掉;
--- !!set
- Mark McGwire: 65
- Sammy Sosa: 63
- Sammy Sosa: 63
- Ken Griffy: 58
  • >是在字符串中折叠换行
    这里是为accomplishment设置一个很长的字符串作为值,但是每行文本前要有一个空格。
accomplishment: >
 Mark set a major league
 home run record in 1998.
  • |是保留换行符,一般用在配置html片段
stats: |
 65 Home Runs
 0.278 Batting Average
# 如:
phraseTemplate: |
  <p> 
      some
  </p>
  • 重复的内容可以使用锚点定义
hr:
- Mark McGwire
- &SS Sammy Sosa #定义锚点
rbi:
- *SS  #使用,就是这里会被展开为Sammy Sosa
- Ken Griffey
SS: &SS Sammy Sosa # 这里必须加SS: 不能只写&SS Sammy Sosa
hr:
 - Mark McGwire
 - *SS
rbi:
 - *SS 
 - Ken Griffey
#如果需要锚定一个数组
default: &default
    - Mark McGwire
    - Sammy Sosa
hr: *default #这里hr和default必须写在一行
  • 合并内容
    主要与锚点配合使用,将一个锚点的内容直接合并到一个对象中
merge:
  - &CENTER { x: 1, y: 2 }
  - &LEFT { x: 0, y: 2 }
  - &BIG { r: 10 }
  - &SMALL { r: 1 }
#  sample1={r=10, y=2, x=1} 
sample1: 
    <<: *CENTER
    r: 10
# sample2={other=haha, x=1, y=2, r=10}
sample2:
    << : [ *CENTER, *BIG ]
    other: haha
# 这里除了合并之外还覆盖了r的值    
sample3:
    << : [ *CENTER, *BIG ]
    r: 100

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/420773.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

react 使用 craco库 配置 @ 路径,以及 jsconfig.json或者tsconfig.json 配置智能提示

使用 craco库 来自定义CRA配置 1、概述 Craco&#xff08;Create React App Configuration Override&#xff09;是一个用于扩展 Create React App&#xff08;CRA&#xff09;配置的工具。通过 Craco&#xff0c;你可以在不弹出 Create React App 的内部配置的情况下&#x…

Entry First Day 入职恩孚第一天

入职第一天&#xff0c;电脑还没配置好就去了工厂。 熟悉了一下设备&#xff0c;切了几个小玩意&#xff0c; hello world 一下。 了解了串行端口的Nodejs的库 https://github.com/serialport/node-serialport&#xff0c;以后要用这个东西和硬件通讯&#xff0c;安装&#…

CleanMyMac X2024免费Mac电脑清理和优化工具

CleanMyMac X是一款专业的 Mac 清理和优化工具&#xff0c;它具备一系列强大的功能&#xff0c;可以帮助用户轻松管理和维护他们的 Mac 电脑。以下是一些关于 CleanMyMac X 的主要功能和特点&#xff1a; 智能清理&#xff1a;CleanMyMac X 能够智能识别并清理 Mac 上的无用文件…

mybatis原理图,我拿到了梦寐以求的字节跳动和腾讯双offer

Kafka 如何做到支持百万级 TPS &#xff1f; 先用一张思维导图直接告诉你答案&#xff1a; 顺序读写磁盘 生产者写入数据和消费者读取数据都是顺序读写的&#xff0c;先来一张图直观感受一下顺序读写和随机读写的速度&#xff1a; 从图中可以看出传统硬盘或者SSD的顺序读写甚…

map和set例题应用

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 第一题 第二题 第三题 第一题 随机链表的复制https://leetcode.cn/problems/copy-list-with-random-pointer/description/ 思路 首先遍历旧链表&#xff0c;并创建新节点&#xff0c;同时用map将旧节点与新节点…

3,设备无关位图显示

建立了一个类Dib Dib.h #pragma once #include “afx.h” class CDib :public CObject { public: CDib(); ~CDib(); char* GetFileName(); BOOL IsValid(); DWORD GetSize(); UINT GetWidth(); UINT GetHeight(); UINT GetNumberOfColors(); RGBQUAD* GetRGB(); BYTE* GetDat…

MySQL:使用聚合函数查询

提醒&#xff1a; 设定下面的语句是在数据库名为 db_book里执行的。 创建t_grade表 USE db_book; CREATE TABLE t_grade(id INT,stuName VARCHAR(20),course VARCHAR(40),score INT );为t_grade表里添加多条数据 INSERT INTO t_grade(id,stuName,course,score)VALUES(1,测试0…

一线互联网大厂中高级Android面试真题收录,记一次字节跳动Android社招面试

在开始回答前&#xff0c;先简单概括性地说说Linux现有的所有进程间IPC方式&#xff1a; 1. **管道&#xff1a;**在创建时分配一个page大小的内存&#xff0c;缓存区大小比较有限&#xff1b; 2. 消息队列&#xff1a;信息复制两次&#xff0c;额外的CPU消耗&#xff1b;不合…

今年Android面试必问的这些技术面,2024Android常见面试题

都说程序员是在吃青春饭&#xff0c;这一点的确有一点对的成分&#xff0c;以前我不这么认为&#xff0c;但随着年龄的增长&#xff0c;事实告诉我的确是这样的&#xff0c;过了30以后&#xff0c;就会发现身体各方面指标下降&#xff0c;体力和身心上都多少有点跟不上了&#…

请查收:2024年腾讯云服务器优惠价格表_租用配置报价

一张表看懂腾讯云服务器租用优惠价格表&#xff0c;一目了然&#xff0c;腾讯云服务器分为轻量应用服务器和云服务器CVM&#xff0c;CPU内存配置从2核2G、2核4G、4核8G、8核16G、4核16G、8核32G、16核32G、16核64等配置可选&#xff0c;公网带宽1M、3M、5M、12M、18M、22M、28M…

RTSP协议

1 简介 RTSP 英文全称 Real Time Streaming Protocol&#xff0c;RFC2326&#xff0c;实时流传输协议&#xff0c;是TCP/IP协议体系中的一个应用层协议&#xff01;协议主要规定定了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP体系结位于RTP和RTCP之上&#xff08…

【Langchain多Agent实践】一个有推销功能的旅游聊天机器人

【LangchainStreamlit】旅游聊天机器人_langchain streamlit-CSDN博客 视频讲解地址&#xff1a;【Langchain Agent】带推销功能的旅游聊天机器人_哔哩哔哩_bilibili 体验地址&#xff1a; http://101.33.225.241:8503/ github地址&#xff1a;GitHub - jerry1900/langcha…

C/C++基础语法

C/C基础语法 文章目录 C/C基础语法头文件经典问题链表链表基础操作 秒数转换闰年斐波那契数列打印n阶菱形曼哈顿距离菱形图案的定义大数计算 输入输出格式化输入输出getline()函数解决cin只读入一个单词的问题fgets读入整行输出字符数组&#xff08;两种方式puts和printf&#…

#单片机(TB6600驱动42步进电机)

1.IDE:keil 2.设备:保密 3.实验&#xff1a;使用单片机通过普通IO口控制TB6600驱动42步进电机 4.时序图&#xff1a; TB6600 ENA、ENA-DIR-、DIRPUL-、PULB-、BA、A-VCC、GND使能电机&#xff08;直接悬空不接&#xff09;方向脉冲输入&#xff08;普通IO口模拟即可&#xff…

Rocky Linux 安装部署 Zabbix 6.4

一、Zabbix的简介 Zabbix是一种开源的企业级监控解决方案&#xff0c;用于实时监测服务器、网络设备和应用程序的性能和可用性。它提供了强大的数据收集、处理和可视化功能&#xff0c;同时支持事件触发、报警通知和自动化任务等功能。Zabbix易于安装和配置&#xff0c;支持跨平…

vscode在windows环境不能使用终端安装依赖

会报这样的错误提示 解决思路&#xff1a; 1、vscode用管理员打开 (非必须) 2、设置策略 打开 windows powerShell . 输入命令 set-ExecutionPolicy RemoteSigned 然后 Y . 查看是否设置成功 get-executionpolicy 3、下载总是超时&#xff0c;设置镜像源 查看镜像源 npm …

「算法」常见位运算总结

位运算符 异或 按位异或可以实现无进位相加&#xff0c;所谓无进位相加&#xff0c;就是在不考虑进位的情况下将两个数相加&#xff08;后面有道题需要用到这种操作&#xff09; 异或的运算律 ①a ^ 0 a ②a ^ a 0 ③a ^ b ^ c a ^ ( b ^ c ) 有符号右移>> 将一个…

基于springboot实现线上阅读系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现线上阅读系统演示 摘要 随着社会发展速度的愈来愈快&#xff0c;以及社会压力变化的越来越快速&#xff0c;致使很多人采取各种不同的方法进行解压。大多数人的稀释压力的方法&#xff0c;是捧一本书籍&#xff0c;心情地让自己沉浸在情节里面&#xff0c;以…

Fabric V2.5 通用溯源系统——应用后端GIN框架部分设计

本节对Fabric V2.5 通用溯源系统的应用后端部分做一个简单的介绍,包括目录结构、文件作用、用户注册登录与农产品信息上链过程介绍。此节内容免费发布在TrueTechLabs Fabric学习交流QQ群。 购买专栏前请认真阅读:《Fabric项目学习笔记》专栏介绍 TrueTechLabs Fabric学习交流…

【LeetCode】一周中的第几天+ 一年中的第几天

2023-12-30 文章目录 一周中的第几天方法一&#xff1a;模拟思路步骤 方法二&#xff1a;调用库函数方法三&#xff1a;调用库函数 [1154. 一年中的第几天](https://leetcode.cn/problems/day-of-the-year/)方法一&#xff1a;直接计算思路&#xff1a; 方法二&#xff1a;调用…