欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spring Boot获取配置文件值

程序员文章站 2022-04-15 17:29:20
在程序开发过程中,经常会将一些可能会修改的值放到配置文件中,那么在Spring Boot中,如何获取配置的文件的值呢? 本篇博客就讲解下使用@Value注解或者@ConfigurationProperties注解来获取配置文件值的方法 方式1:使用@Value注解获取配置文件值 首先在applica ......

在程序开发过程中,经常会将一些可能会修改的值放到配置文件中,那么在spring boot中,如何获取配置的文件的值呢?

本篇博客就讲解下使用@value注解或者@configurationproperties注解来获取配置文件值的方法

方式1:使用@value注解获取配置文件值

首先在application.yml中添加如下配置:

book:
  author: wangyunfei
  name: spring boot

然后修改spring boot项目启动类的代码如下:

package com.zwwhnly.springbootdemo;

import org.springframework.beans.factory.annotation.value;
import org.springframework.boot.springapplication;
import org.springframework.boot.autoconfigure.springbootapplication;
import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.restcontroller;

@restcontroller
@springbootapplication
public class springbootdemoapplication {

    @value("${book.author}")
    private string bookauthor;
    @value("${book.name}")
    private string bookname;

    @requestmapping("/")
    string index() {
        return "book name is:" + bookname + " and book author is:" + bookauthor;
    }

    public static void main(string[] args) {
        springapplication.run(springbootdemoapplication.class, args);
    }
}

启动项目,在浏览器输入http://localhost:8080/,会看到如下信息:

Spring Boot获取配置文件值

方式2:使用@configurationproperties注解获取配置文件值

在方式1中,我们使用@value注解来获取配置文件值,但如果多个地方都需要获取的话,就需要在多个地方写注解,造成混乱,不好管理,

其实,spring boot还提供了@configurationproperties注解来获取配置文件值,该种方式可把配置文件值和一个bean自动关联起来,使用起来更加方便,个人建议用这种方式。

在application.yml中添加如下配置:

author:
  name: wangyunfei
  age: 32

新建类authorsettings,添加@component和@configurationproperties注解

package com.zwwhnly.springbootdemo;

import org.springframework.boot.context.properties.configurationproperties;
import org.springframework.stereotype.component;

@component
@configurationproperties(prefix = "author")
public class authorsettings {
    private string name;
    private integer age;

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

修改启动类代码如下:

package com.zwwhnly.springbootdemo;

import org.springframework.beans.factory.annotation.autowired;
import org.springframework.boot.springapplication;
import org.springframework.boot.autoconfigure.springbootapplication;
import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.restcontroller;

@restcontroller
@springbootapplication
public class springbootdemoapplication {

    @autowired
    private authorsettings authorsettings;

    @requestmapping("/")
    string index() {
        return "book name is:" + authorsettings.getname() + " and book author is:" + authorsettings.getage();
    }

    public static void main(string[] args) {
        springapplication.run(springbootdemoapplication.class, args);
    }
}

启动项目,在浏览器输入http://localhost:8080/,会看到如下信息:

Spring Boot获取配置文件值