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

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

作者: jyjack | 来源:发表于2019-07-27 20:28 被阅读0次

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

    概述

    在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集成

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/jtzerctx.html