栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Springboot 读取配置文件参数(ymlproperties)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Springboot 读取配置文件参数(ymlproperties)

Springboot 读取配置文件的参数,这里介绍2种方式。一种是使用注解@Value,一种是使用属性对应的方式。

(说明:我这里贴出来的配置,里面的参数命名是下划线和驼峰命名混用的,这里只是为了演示一下,我实际使用的过程中,把命名方式都调整成统一的了,配置文件用下划线,代码里面是驼峰。贴出来的命名,是挪用了weibo官方提供的 java SDK示例代码里面的配置,本身就是混用的。)

Springboot默认读取的是application.yml中的,yml文件或者properties文件。如果想要自定义配置文件,可以在application.yml 同级创建自定义yml或者properties文件,必须以application- 开头,然后在application.yml中配置下,多个使用逗号隔开即可。

spring:
  profiles:
    active: dev,weibo

我这里就以weibo的配置为例,配置内容做了处理。我的配置文件是application-weibo.yml,内容如下:

xxx:
  weiboapi:
    client_ID: xxx
    client_SERCRET: xxx
    redirect_URI: xxx
    baseURL: https://api.weibo.com/2/
    accessTokenURL: https://api.weibo.com/oauth2/access_token
    authorizeURL: https://api.weibo.com/oauth2/authorize
    rmURL: https://rm.api.weibo.com/2/
    grant_type: authorization_code

1、使用@Value注解

首先定义WeiboConfig.java

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;




@Configuration
@Data
@NoArgsConstructor
@AllArgsConstructor
public class WeiboConfig {

    
    @Value("${pomp.weiboapi.client_ID}")
    private String clientId;

    
    @Value("${pomp.weiboapi.client_SERCRET}")
    private String clientSercret;

    
    @Value("${pomp.weiboapi.redirect_URI}")
    private String redirectURI;

    
    @Value("${pomp.weiboapi.baseURL}")
    private String baseURL;

    
    @Value("${pomp.weiboapi.accessTokenURL}")
    private String accessTokenURL;

    
    @Value("${pomp.weiboapi.authorizeURL}")
    private String authorizeURL;

    
    @Value("${pomp.weiboapi.rmURL}")
    private String rmURL;

    
    @Value("${pomp.weiboapi.grant_type}")
    private String grantType;
}

测试类:

@SpringBootTest
@RunWith(SpringRunner.class)
public class WeiboTest {

    @Resource
    private WeiboConfig weiboConfig;

    @Test
    public void test(){
        String url = weiboConfig.getAccessTokenURL();
        if(null == url){
            System.out.println("null------------------");
        }
        System.out.println(url);
    }
}

2、使用类属性获取

WeiboConfig.java内容:

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;



@Component
@Data
@NoArgsConstructor
@AllArgsConstructor
@ConfigurationProperties(prefix = "xxx.weiboapi")
public class WeiboConfig {


    
    private String clientId;

    
    private String clientSercret;

    
    private String redirectURI;

    
    private String baseURL;

    
    private String accessTokenURL;

    
    private String authorizeURL;

    
    private String rmURL;

    
    private String grantType;
}

对应的application-weibo.yml内容:注意这里的参数命名改了。

xxx:
  weiboapi:
    clientId: xxx
    clientSercret: xxx
    redirectURI: xxx
    baseURL: https://api.weibo.com/2/
    accessTokenURL: https://api.weibo.com/oauth2/access_token
    authorizeURL: https://api.weibo.com/oauth2/authorize
    rmURL: https://rm.api.weibo.com/2/
    grantType: authorization_code

测试类同上。

PS:这里是2版配置文件,里面的配置属性命名不一样。

我选用的是@Value注解的方式,这样配置文件的参数命名和java代码里面的命名可以不用一致。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/631334.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号