spring boot 从零开始入门3: 读取属性配置文件

2019-07-27  本文已影响0人  jyjack

如果您认为对你有帮助,请点个赞!

概述

在WEB开发中,经常需要读取配置文件( 如.properties文件 )。
使用spring boot,读取配置文件将变得非常方便。下面我们直接进入实战。

准备工作

本示例需要使用之前创建的 HelloWorld项目。
如果有开发环境,未创建HelloWorld项目,请参考 创建HelloWorld
如果没有开发环境,请直接参考 环境搭建及HelloWorld

下面进入实战环节。

实战

准备属性配置文件

缺省情况下,spring boot 使用 application.properties文件作为属性配置文件。

我们先在该文件中添加两个自定义的属性,代码如下:

# application.properties  这是默认的属性文件
# 自定义属性
my.property1=value1
my.property2=value2

读取属性(方法1:使用@Value直接读取属性)

新建ConfigController.java中,添加读取属性的代码,如下所示:

//ConfigController.java
package com.example.helloworld;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


@RestController
public class ConfigController{
    @Value("${my.property1}")
    private String property1;

    @Value("${my.property2}")
    private String property2;

    @RequestMapping("/get/property")         //url
    public String getProperty() {         // 使用@Value注解,读取属性值
        return "property1="+property1 + "  property2=" +property2;
    }
}

运行项目,访问 http://localhost:8080/get/property
运行结果如下,可以看到属性的值已经读取出来了。是不是感觉很爽,原来可以这么简单。

property1=value1 property2=value2

读取属性(方法2:使用@Autowired注解,将配置文件读取到Bean类)

新建一个类ConfigBean.java,该类定义了需要从属性文件中获取的属定,具体代码如下:

//ConfigBean.java

package com.example.helloworld;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component                      
public class ConfigBean {     // 该类需要用 Component进行注解
    @Value("${my.property1}")
    private String myproperty1; // 使用@Value注解,读取属性值

    @Value("${my.property2}")
    private String myproperty2; // 使用@Value注解,读取属性值

    public String getMyproperty1() {
        return myproperty1;
    }

    public void setMyproperty1(String myproperty1) {
        this.myproperty1 = myproperty1;
    }

    public String getMyproperty2() {
        return myproperty2;
    }

    public void setMyproperty2(String myproperty2) {
        this.myproperty2 = myproperty2;
    }
}

在ConfigController.java中,添加读取属性的代码,如下所示:

//ConfigController.java
import org.springframework.beans.factory.annotation.Autowired;
//ConfigController.java
    @Autowired
    private ConfigBean config;     //使用@Autowired注解,创建ConfigBean对象实例,以读取配置文件。
    //注意:如果使用new是不会自动读取属性文件的,必须用@Autowired注解

    @RequestMapping("/get/config")    //url
    public ConfigBean getConfig() {     //直接返回ConfigBean 对象
        return config;
    }

运行项目,访问 http://localhost:8080/get/config
运行结果如下,可以看到属性的值已经读取出来了:

{"myproperty1":"value1","myproperty2":"value2"}

读取属性(方法3:使用Environment读取)

在ConfigController.java中,添加读取属性的代码,如下所示:

//ConfigController.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
    @Autowired
    private Environment environment;  //使用@Autowired读取配置文件到Environment 对象实例中

    @RequestMapping("/get/env")         //url
    public String getEnv() {         
        String property1=environment.getProperty("my.property1"); //获取属性
        String property2=environment.getProperty("my.property2"); //获取属性
        return "property1="+property1 + "  property2=" +property2;
    }

运行项目,访问 http://localhost:8080/get/env
运行结果如下

property1=value1 property2=value2

小结:
可以看到使用Spring Boot读取 配置文件是多么的简单。
这实际上是使用了约定优于配置的思想(maven也是基于这一思想)。即缺省使用application.properties文件进行属性的配置。

当然spring boot 也是可以使用自定义的配置文件。本文暂不讲解,可以自行百度 ** @ConfigurationProperties注解**

参考资料

要深入理解spring boot的原理,建议复习下《JAVA编程语言 》中的如下内容

如果对您有帮助,请点赞!

下一篇 spring boot 从零开始入门4: 数据库之Hibernate集成

上一篇下一篇

猜你喜欢

热点阅读