Spring软件工程师成长日记

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

2019-03-05  本文已影响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。界面同前面。看控制台打印出配置文件值

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

猜你喜欢

热点阅读