一、前言
1.该程序代码是使用idea2021.12版本编写的,若使用其他软件请对照好配置;
2.这个程序具体的内容我忘了,只知道使用@Component@ConfigurationProperties@Override@SpringBootTest等方法写的,具体实现的功能就是新建几个.yml和.java文件,实现在.yml文件中配置访问路径(输入信息)在.java文件中构造,并在其控制台输出;
3.下面写的是这个表需要建的结构和代码段以及运行的结果;
4.这个博文讲的,我已将代码包发布到了我的资源里,有需要的可以直接下载并导入到自己的id里,看看能不能运行;
二、结构
首先需要建包,这里就不多说了,我建的报名为unit2-2;
依次在包中src-main-java-com-example-unit22文件中新建软件包,名称为vo
其次在vo软件包中新建Employee,Role,Student三个Java类文件,这三个是Java类用来构造方法的
正常在unit22文件中是有Unit22Application文件的,不需要新增(没有就新增)
在次在src-main-resources软件包中新建application.yml文件,这个是用来配置访问路径的
最后在src-testjava-com-example-unit22中建立Unit22ApplicationTests java类(已有就不用建)这个类用来将配置文件的属性值自动注入,并输出
以上为本代码的结构,下面为代码的结构,画红色框的就是需要编写的代码,下面会依次将各代码段粘贴
三、代码段
1.1.Employee.java类代码
package com.example.unit22.vo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
//@Component表示Role实体类是SpringBoot的组件
@Component
@ConfigurationProperties(prefix = "employee")
//创建Employee实体类
public class Employee {
//@Value将配置文件中基本数据类型的属性值注入
@Value("${employee.name}")
private String name;
@Value("${employee.birth}")
private String birth;
private List <String> likes;
//生成getter和
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getBirth() {
return birth;
}
public void setBirth(String birth) {
this.birth = birth;
}
public List<String> getLikes() {
return likes;
}
public void setLikes(List<String> likes) {
this.likes = likes;
}
//生成toString方法
@Override
public String toString() {
return "Employee{" +
"name='" + name + '\'' +
", birth='" + birth + '\'' +
", likes=" + likes +
'}';
}
}
1.2.Role.java类代码
package com.example.unit22.vo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
//@Component表示Role实体类是SpringBoot的组件
@Component
//@ConfigurationProperties将配置文件富复杂数据类型的属性值注入,必须创建setter方法
@ConfigurationProperties(prefix = "role")
public class Role {
//@Value将配置文件中基本数据类型的属性值注入
@Value("${role.name}")
private String name;
@Value("${role.description}")
private String description;
private List <Long> permissionIds;
//生成get和方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public List<Long> getPermissionIds() {
return permissionIds;
}
public void setPermissionIds(List<Long> permissionIds) {
this.permissionIds = permissionIds;
}
//生成toString方法
@Override
public String toString() {
return "Role{" +
"name='" + name + '\'' +
", description='" + description + '\'' +
", permissionIds=" + permissionIds +
'}';
}
}
1.3.Student.java类代码
package com.example.unit22.vo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
@ConfigurationProperties(prefix = "student")
public class Student {
@Value("${student.name}")
private String name;
@Value("${student.sno}")
private String sno;
private List<String> families;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSno() {
return sno;
}
public void setSno(String sno) {
this.sno = sno;
}
public List<String> getFamilies() {
return families;
}
public void setFamilies(List<String> families) {
this.families = families;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", sno=" + sno +
", families=" + families +
'}';
}
}
2.Unit22ApplicationJAVA类代码
package com.example.unit22;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Unit22Application {
public static void main(String[] args) {
SpringApplication.run(Unit22Application.class, args);
}
}
3.application.yml文件代码
#配置访问路径
server:
servlet:
context-path: /unit22
#配置管理员角色基本信息
role:
name: admin
description: 管理员
permissionIds:
- 10
- 11
- 12
#配置员工信息
employee:
name: 李四
birth: 2000-10-10
likes:
- 看美
- 吹口哨
- 聊天
- 交花
#配置学生信息
student:
name: CSDN
sno: 2104240001
families:
- 玛丽
- 肥波
- 汤姆
- 柯南
4.Unit22ApplicationTests java类代码
package com.example.unit22;
import com.example.unit22.vo.Employee;
import com.example.unit22.vo.Role;
import com.example.unit22.vo.Student;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class Unit22ApplicationTests {
//@Autowired将配置文件的属性值自动注入
@Autowired
private Role role;
@Autowired
private Employee employee;
@Autowired
private Student student;
@Test
void contextLoads() {
System.out.println(role);
System.out.println(employee);
System.out.println(student);
}
}