Введение
В этом проекте вы научитесь настраивать приложение Spring Boot с использованием файла YAML, реализовать класс для обработки конфигурационных данных и создать контроллер для отображения настроенной информации на веб-странице.
👀 Предварительный просмотр

🎯 Задачи
В этом проекте вы научитесь:
- настраивать свойства приложения с использованием файла YAML;
- реализовать класс
Studentдля обработки конфигурационных данных; - создать
StudentControllerдля отображения настроенных данных на веб-странице; - изменить класс запуска, чтобы сканировать все классы в пакете проекта.
🏆 Достижения
После завершения этого проекта вы сможете:
- использовать файлы YAML для настройки приложения;
- использовать аннотацию
@ConfigurationPropertiesдля автоматической привязки конфигурационных данных к классу; - использовать аннотацию
@Valueдля внедрения значений конфигурации в контроллер; - использовать аннотацию
@SpringBootApplicationдля настройки сканирования компонентов; - разрабатывать простое веб-приложение, которое отображает настроенные данные.
Настройте файл YAML
В этом шаге вы научитесь настраивать свойства приложения с использованием файла YAML. Следуйте шагам ниже, чтобы выполнить этот шаг:
- Перейдите в каталог
src/main/resourcesв вашем проекте. - Создайте новый файл с именем
application.yml. - В файле
application.ymlдобавьте следующую конфигурацию:
## Собственные свойства
school: Stanford University
student:
id: 2024000103
name: Taylor Joy
age: 18
courseId: 100018, 321001, 458911
Эта конфигурация YAML определяет свойство school и свойства student, включая идентификатор студента, имя, возраст и идентификаторы курсов.
Реализуйте класс 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) + "}";
}
// Getters and setters
//...
}
В этом классе мы используем аннотации @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. Метод getStudent() будет отображать настроенные данные в браузере при доступе по конечной точке /student.
Измените класс запуска
В этом шаге вы измените класс запуска, чтобы сканировать все классы в пакете 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);
}
}
Добавив scanBasePackages="org.labex" в аннотацию @SpringBootApplication, мы гарантируем, что все классы в пакете 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, чтобы улучшить свои навыки.



