Springboot 读取配置文件参数(yml\properties)
Springboot 读取配置文件的参数,这里介绍2中方式。一种是使用注解@Value,一种是使用属性对应的方式。(说明:我这里贴出来的配置,里面的参数命名是下划线和驼峰命名混用的,这里只是为了演示一下,我实际使用的过程中,把命名方式都调整成统一的了,配置文件用下划线,代码里面是驼峰。贴出来的命名,是挪用了weibo官方提供的 java SDK示例代码里面的配置,本身就是混用的。)Springbo
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;
/**
* <p>
* Title WeiboConfig
* </p>
* <p>
* Description 微博配置
* </p>
*
* @Author lzh_me@126.com
* @Date 2021-11-26 8:44
* @Version 1.0
*/
@Configuration
@Data
@NoArgsConstructor
@AllArgsConstructor
public class WeiboConfig {
/**
* AppKey
*/
@Value("${pomp.weiboapi.client_ID}")
private String clientId;
/**
* AppSecret
*/
@Value("${pomp.weiboapi.client_SERCRET}")
private String clientSercret;
/**
* 授权回调地址
*/
@Value("${pomp.weiboapi.redirect_URI}")
private String redirectURI;
/**
* baseURL
*/
@Value("${pomp.weiboapi.baseURL}")
private String baseURL;
/**
* accessTokenURL
*/
@Value("${pomp.weiboapi.accessTokenURL}")
private String accessTokenURL;
/**
* authorizeURL
*/
@Value("${pomp.weiboapi.authorizeURL}")
private String authorizeURL;
/**
* rmURL
*/
@Value("${pomp.weiboapi.rmURL}")
private String rmURL;
/**
* 请求的类型,填写authorization_code
*/
@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;
/**
* <p>
* Title WeiboConfig
* </p>
* <p>
* Description 微博配置
* </p>
*
* @Author lzh_me@126.com
* @Date 2021-11-26 8:44
* @Version 1.0
*/
@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代码里面的命名可以不用一致。
更多推荐
所有评论(0)