软件框架技术SpringBoot—使用@Component@ConfigurationProperties等方法实现将配置文件的注入,并在控制台显示

一、前言

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);
    }
}

四、运行结果

 以上为本程序的相关内容,因为我忘了这个程序的具体使用方法,所以就无法讲解了,有需要或了解的可以看看,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姜鸿阳

谢谢您!感谢您的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值