美文网首页Spring软件工程师成长日记
我是这样使用SpringBoot(配置文件)

我是这样使用SpringBoot(配置文件)

作者: 碧波之心 | 来源:发表于2019-03-05 21:12 被阅读51次

    目录

    前一章中使用了spring boot默认的端口8080,完成了一个API的服务。项目很小,代码量很少。这里来看看配置文件。这章会完成配置文件的使用,自定义属性的简单读取。

    创建配置文件

    IDEA创建resources文件夹

    在src/main/目录中创建一个资源文件夹resources,IDEA创建resources文件夹的方法。

    1. 右键点击main,选择New>Directory。


      菜单
    2. 创建文件夹


      创建文件夹
      文件夹

      这时候是普通文件夹,要把它改成资源文件夹。

    3. IDEA菜单File->Project Structure...


      菜单
    4. 选择Modules


      Modules
    5. 在中间容器选中bhhello模块(刚创建resources文件的项目),选中src>main>resources文件夹,点击上面的Resources文字。resources文件夹就会变成资源文件夹。点击OK保存。


      修改成资源文件夹
      改成资源文件夹后的图标会变
      目录

    创建配置文件

    在resources文件夹中创建一个文件,名称为application.yml,application.yml是spring boot 默认会找到的配置文件,不需要其它设置,这个文件中的配置项就可以生效。


    配置文件目录

    我们把项目的端口号改成80,那么在application.yml文件中添加如下内容

    server:
      port: 80
    
    配置端口
    右键HelloApplication启动项目(这个还是前一章的项目)
    .yml配置文件是按照层级配置的,这里指的是server.port=80。server项配置的是一些与服务相关的属性。port是端口属性,后面跟的是值。还有name是服务名称。还有一些属性,这里不一一列出了。
    启动项目
    这时候端口已经是80了。
    在浏览器中测试一下访问http://localhost/hello?name=biboheart
    访问
    一切正常。
    spring boot 的配置项很多,可以到官网查。后面功能中用到的会讲解。

    读取配置文件中的自定义属性

    有时候,自己业务中希望有些属性可以根据不同的场景给出不同的值,只是几个枚举值不想存数据库,不想为了这个属性值去改代码。
    可以的,来实现一下这个功能。

    增加一个配置属性

    在application.yml文件中增加custom.name=biboheart,下面代码3、4行与此同一个意思

    server:
      port: 80
    custom:
      name: biboheart
    

    读取配置值

    在HelloApplication.java中读取配置文件值。这里只是演示功能就用控制台打印结果了。修改文件内容如下:

    package com.biboheart.demos;
    
    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;
    
    @SpringBootApplication
    @RestController
    public class HelloApplication {
        @Value("${custom.name:default}")
        private String customName;
        
        public static void main( String[] args ) {
            SpringApplication.run(HelloApplication.class, args);
        }
    
        @RequestMapping(value = "/hello")
        public String hello(String name) {
            System.out.println("配置文件自定义配置的值是: " + customName);
            return "hello " + name;
        }
    }
    

    说明

    @Value("${custom.name:default}")
    这里表示从配置文件中读取custom.name的值,如果没有读取到custom.name(没有配置的话),值为default
    System.out.println("配置文件自定义配置的值是: " + customName);
    控制台中打印字符串

    完成以上修改后,重启服务。
    在浏览器中访问http://localhost/hello?name=biboheart。界面同前面。看控制台打印出配置文件值

    控制台打印
    可以试试修改配置文件中的这个值,重启服务后再访问就会改变。
    改变值
    打印结果

    相关文章

      网友评论

        本文标题:我是这样使用SpringBoot(配置文件)

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