介绍
在这个项目中,你将学习如何使用 YAML 文件配置 Spring Boot 应用程序,实现一个类来处理配置数据,并创建一个控制器以在网页上显示配置信息。
👀 预览

🎯 任务
在这个项目中,你将学习:
- 如何使用 YAML 文件配置应用程序属性
- 如何实现一个
Student类来处理配置数据 - 如何创建一个
StudentController以在网页上显示配置的数据 - 如何修改启动类以扫描项目包中的所有类
🏆 成果
完成这个项目后,你将能够:
- 使用 YAML 文件进行应用程序配置
- 使用
@ConfigurationProperties注解将配置数据自动绑定到一个类 - 使用
@Value注解将配置值注入到控制器 - 使用
@SpringBootApplication注解配置组件扫描 - 开发一个显示配置数据的简单 Web 应用程序
配置 YAML 文件
在这一步中,你将学习如何使用 YAML 文件配置应用程序属性。请按照以下步骤完成此步骤:
- 导航到项目中的
src/main/resources目录。 - 创建一个名为
application.yml的新文件。 - 在
application.yml文件中,添加以下配置:
## 自定义属性
school: 斯坦福大学
student:
id: 2024000103
name: 泰勒·乔伊
age: 18
courseId: 100018, 321001, 458911
此 YAML 配置定义了 school 属性和 student 属性,包括学生 ID、姓名、年龄和课程 ID。
实现 Student 类
在这一步中,你将实现 Student 类来处理配置数据。
- 导航到
org.labex.entity包并创建一个名为Student.java的新文件。 - 在
Student.java文件中,添加以下代码:
package org.labex.entity;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Arrays;
@Component
@ConfigurationProperties(prefix = "student")
public class Student {
private String id;
private String name;
private int age;
private int[] courseId;
@Override
public String toString() {
return "Student {id=" + id +
", name=" + name +
", age=" + age +
", course id=" + Arrays.toString(courseId) + "}";
}
// 获取器和设置器
//...
}
在这个类中,我们使用 @Component 和 @ConfigurationProperties 注解将 application.yml 文件中的属性自动绑定到 Student 类的相应字段。
实现 StudentController
在这一步中,你将实现 StudentController 来显示配置的数据。
- 导航到
org.labex.controller包并创建一个名为StudentController.java的新文件。 - 在
StudentController.java文件中,添加以下代码:
package org.labex.controller;
import org.labex.entity.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class StudentController {
@Value("${school}")
private String school;
@Autowired
private Student student;
@GetMapping("/student")
public String getStudent() {
return "school=" + school + student.toString();
}
}
在这个控制器中,我们使用 @Value 注解来注入 school 属性,并使用 @Autowired 注解来注入 Student 对象。当通过 /student 端点访问时,getStudent() 方法将在浏览器上显示配置的数据。
修改启动类
在这一步中,你将修改启动类以扫描 org.labex 包中的所有类。
- 导航到
org.labex.springbootyaml包并打开DemoApplication.java文件。 - 按如下方式更新
DemoApplication类:
package org.labex.springbootyaml;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication(scanBasePackages="org.labex")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
通过在 @SpringBootApplication 注解中添加 scanBasePackages="org.labex",我们确保 org.labex 包中的所有类都被 Spring 上下文扫描和管理。
打包并运行应用程序
在这最后一步中,你将把应用程序打包成一个 JAR 文件并运行 Spring Boot 服务。
- 打开一个终端,并使用以下命令导航到项目的根目录:
cd ~/project/springbootyaml/
- 运行以下命令来打包并启动 Spring Boot 服务:
mvn clean package
mvn spring-boot:run
- 一旦服务运行起来,打开一个网页浏览器并导航到
http://localhost:8080/student。你应该会在页面上看到配置的学校和学生信息。
输出应该如下所示:

恭喜!你已经通过使用 YAML 文件配置应用程序、实现必要的类以及运行 Spring Boot 服务成功完成了该项目。
总结
恭喜!你已经完成了这个项目。你可以在 LabEx 中练习更多实验来提升你的技能。



