Spring Boot(从配置文件中获取数据)

文章介绍了SpringBoot如何简化Spring应用开发,强调了application.yml配置文件的使用,并通过创建Person实体类和Phone子类,展示了如何在配置文件中为实体类赋值,并利用@ConfigurationProperties注解建立关联。最后,文章通过编写测试类验证配置属性能否在控制台上正常输出。
摘要由CSDN通过智能技术生成

一、专业名词解释

1、Spring Boot:简化Spring应用开发的一个框架,对整个Spring技术栈的一个整合

2、Spring Boot的配置文件,Spring有配置文件(.xml) ,Spring Boot 是对Spring 框架的整合,就会优化之前的配置的配置文件,.xml的形式过于繁琐,而.yml的形式结构清晰,易于开发,并以数据为中。Spring Boot的配置文件形式:

        ①、application.properties:和spring的properties属性差不多

        ②、application.yml:结构清晰

二、将配置文件自定义属性输出到控制台上

1、先创建一个Spring Boot工程

 2、项目初始化工作已经完成,接下来就正是完成主题任务了

        2.1、开始自动导包(如果没有也没关系,没啥影响)

        2.2、 删除多余的配置项 也可以不用删,没啥影响

        2.3、先来启动一下Spring Boot启动类,看看Maven环境是否正常

这个类就是SpringBoot的主类

package com.spring_boot_01_1;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringBoot011Application {

    public static void main(String[] args) {
        SpringApplication.run(SpringBoot011Application.class, args);
    }

}

@SpringBootApplication:这个注解表明这是Spring Boot的启动类,启动这个类下的main方法将启动spring boot的应用

         2.4、对整个目录做一个简单的解释

①、main:主要写java代码的地方

②、resource:配置资源

③、src\main\resources\static:存放静态资源的,如前端代码就写这里

④、src\main\resources\templates:这里主要存放模板引擎

 ⑤、application.properties:这里就写配置类,不过这里主要用application.yml,可删除也不删,不影响,直接在resources下新建一个file,命名为application.yml

         2.5、新建实体类并为实体类在配置文件中赋值

①、Person类

package com.spring_boot_01_1.entity;

import java.util.List;
import java.util.Map;

public class Person {

//    常规属性
    private String name;
    private Integer age;

//    map
    private Map<String,Object> maps;

//    list
    private List<String> list;

//    对象
    private Phone phone;


    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", maps=" + maps +
                ", list=" + list +
                ", phone=" + phone +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Map<String, Object> getMaps() {
        return maps;
    }

    public void setMaps(Map<String, Object> maps) {
        this.maps = maps;
    }

    public List<String> getList() {
        return list;
    }

    public void setList(List<String> list) {
        this.list = list;
    }

    public Phone getPhone() {
        return phone;
    }

    public void setPhone(Phone phone) {
        this.phone = phone;
    }
}

②、Phone类

package com.spring_boot_01_1.entity;

//整个类就是刚刚在Person类中的那个对象,即人的手机的对象,是手机对象的实体类
public class Phone {
    private String brand;         //手机品牌
    private String phoneColor;    //手机颜色

//    getter和setter属性、toString重写方法如下

    @Override
    public String toString() {
        return "Phone{" +
                "brand='" + brand + '\'' +
                ", phoneColor='" + phoneColor + '\'' +
                '}';
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getPhoneColor() {
        return phoneColor;
    }

    public void setPhoneColor(String phoneColor) {
        this.phoneColor = phoneColor;
    }
}
2.6、实体类已经完成了,接下来就是在配置文件中为实体类赋值

        ①、在为实体类赋值前,给配置文件添加一个依赖,这样在写实体类赋值时配置文件就有提示了,在pom.xml 的dependences中添加dependency属性,代码如下:

<!--        配置文件提示器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

        ②、实体类和配置文件建立起联系,在实体类上加上两个注解即可@Component和@ConfigurationProperties(prefix="这里写配置前缀")

package com.spring_boot_01_1.entity;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

@Component
@ConfigurationProperties(prefix = "person")
public class Person {

//    常规属性
    private String name;
    private Integer age;

//    map
    private Map<String,Object> maps;

//    list
    private List<String> list;

//    对象
    private Phone phone;


    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", maps=" + maps +
                ", list=" + list +
                ", phone=" + phone +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Map<String, Object> getMaps() {
        return maps;
    }

    public void setMaps(Map<String, Object> maps) {
        this.maps = maps;
    }

    public List<String> getList() {
        return list;
    }

    public void setList(List<String> list) {
        this.list = list;
    }

    public Phone getPhone() {
        return phone;
    }

    public void setPhone(Phone phone) {
        this.phone = phone;
    }
}

③、配置文件内容

person:
  name: 张三
  age: 18
  maps:
    teather: 张三三
    address: 湖北黄冈
    hobby: 篮球、足球、羽毛球
  lists:
    - 1
    - 2
    - 3
    - 4
  phone:
    brand: 华为
    phoneColor: 黑色

2.6、到这里,所有的工作已经完成了,现在就去测试一下,我们在配置文件中写的属性能否在控制台正常输出,我们拭目以待吧!

①、我们来到spring提供的测试环境

②、我们在测试类上添加一个注解@RunWith(SpringRunner.class),表示测试类的运行环境用springBoot的

@RunWith(SpringRunner.class)

③、把刚刚创建的实体类,自动装配一下 

@Autowired
Person persons;

④、在测试方法中输出一下实体类各信息

package com.spring_boot_01_1;
import com.spring_boot_01_1.entity.Person;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBoot011ApplicationTests {

    @Autowired
    Person persons;

    @Test
    public void contextLoads() {
        System.out.println(persons);

    }

}

⑤、运行结果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值