yml文件 数据回显
系统要求
Java 8+
springBoot2.5 +
创建springBoot项目工程
配置pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.xiang</groupId>
<artifactId>springInitailizr</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springInitailizr</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<!--
自定义的类和配置文件绑定一般没有提示,可以添加一个依赖,然后重启项目可以解决
-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
编写User类
package com.xiang.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* Created by IntelliJ IDEA.
* User: xiang
* Date: 2021/10/13 10:02
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
@ConfigurationProperties("user")//绑定配置文件,设置绑定的前缀
public class User {
private String userName;
private Boolean boss;
private Date birth;
private Integer age;
private Pet pet;
private String[] interfaces;
private List<String> friends;
private Map<String, String> score;
private Map<String, List<Pet>> allPets;
private Set<Double> money;
}
编写Pet类
package com.xiang.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.stereotype.Component;
/**
* Created by IntelliJ IDEA.
* User: xiang
* Date: 2021/10/13 10:03
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
public class Pet {
private String name;
private Double weight;
}
编写application.yml文件
user:
userName: "xiang"
# userName: 'xiang'
boss: true
birth: 2000/11/11
age: 40
pet:
name: "小哈"
weight: 10
interfaces: [ 学习,上网,游泳,游戏 ]
friends:
- 小一
- 小二
- 小五
score: {
JavaSE: 100,
JavaEE: 100,
JavaScript: 100,
Linux: 100
}
allPets:
dog:
- {
name: 二哈, weight: 30
}
- {
name: 小二哈, weight: 20
}
cat: [
{
name: 哈哈, weight: 10
}
]
money:
- 10000.00
- 99999.00
编写HomeController类
package com.xiang.controller;
import com.xiang.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by IntelliJ IDEA.
* User: xiang
* Date: 2021/10/13 10:31
*/
@Controller
public class HomeController {
@Autowired
private User user;
@ResponseBody
@RequestMapping("/info")
public User info() {
return user;
}
@ResponseBody
@RequestMapping("/a.html")
public String info2() {
return "user/a.html..............";
}
}
主程序测试
package com.xiang;
import com.xiang.pojo.User;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
public class SpringInitailizrApplication {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(SpringInitailizrApplication.class, args);
User user = context.getBean("user", User.class);
System.out.println(user);
}
}
运行结果
控制台
User(userName=xiang, boss=true, birth=Sat Nov 11 00:00:00 CST 2000, age=40, pet=Pet(name=小哈, weight=10.0), interfaces=[学习, 上网, 游泳, 游戏], friends=[小一, 小二, 小五], score={JavaSE=100, JavaEE=100, JavaScript=100, Linux=100}, allPets={dog=[Pet(name=二哈, weight=30.0), Pet(name=小二哈, weight=20.0)], cat=[Pet(name=哈哈, weight=10.0)]}, money=[10000.0, 99999.0])
前端
项目结构目录
yaml
简介
YAML是一种标记语言
非常适合用来做以数据为中心的配置文件
基本语法
key: value ;kv之间有空格
大小写敏感
使用缩进表示层级关系
缩进不允许使用tab,只允许使用空格
缩进的空格数不重要,只要相同层级的元素左对齐即可
'#'表示注释
字符串无需加引号
‘ 表示的 / 会被转义
数据类型
- 字面量:单个的、不可再分的值:date、boolean、string、number、null
k: v
- 对象:键值对的集合:map、set、object
行内写法(与json的表示相同): k: {k1:v1,k2:v2,k3:v3}
k:
k1: v1
k2: v2
k3: v3
- 数组:一组按次序排列的值:array、list
行内写法(与json的表示相同): k: [v1,v2,v3]
k:
- v1
- v2
- v3