0
点赞
收藏
分享

微信扫一扫

spring-boot全局配置引入

Greatiga 2023-08-08 阅读 52
javaspring

If you lose your purpose, it’s like you’re broken. 如果你生活漫无目的,那就好像你坏了。

@ConfigurationProperties与@Vuale两个注解的的区别:

@ConfigurationProperties:是和JavaBean的所有属性绑定

@Value:是一个一个属性绑定

@ConfigurationProperties:不支持spring表示式的写法

@Value:支持spring的表达式的写法,#{12+13}

@ConfigurationProperties:支持JSR303数据校验

@Value:不支持JSR303数据校验

@ConfigurationProperties:支持复杂类型的绑定,比如Map,List

@Value:不支持复杂的类型绑定,比如${user.map}是读不出数据的

1、配置类

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Lazy;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

@Data
@Order(-1)
@Component
@ConfigurationProperties(prefix = saas)
public class SaasProperties {

/**
* 亿美短信配置
*/

private EmayProperties emay = new EmayProperties();

/**
* 阿里OSS配置
*/

private ResourceProperties resource = new ResourceProperties();


@Data
public static class EmayProperties {
private String ip;
private int port;
private String appId;
private String secretKey;
private String filePath;
}

@Data
public static class ResourceProperties {
private String endPoint;
private String keyId;
private String keySecret;
private String bucketName;
private String fileResource;
private String thumbnail;
private String companyLicense;
}

}

2、application.properties部分配置

#OSS
saas.resource.end-point=xxx.com
saas.resource.key-id=xxx
saas.resource.key-secret=xxxBWVfhj
saas.resource.bucket-name=resource-message
saas.resource.file-resource=resource
saas.resource.thumbnail=thumbnail
saas.resource.company-license=companyLicense

## 亿美软通相关
saas.emay.ip=bjmtn.b2m.cn
saas.emay.port=80
saas.emay.app-id=3SDK-EMS-0130-XXXXX
saas.emay.secret-key=secretKey
#saas.emay.file-path=/data/temp/emay/temp.txt
saas.emay.file-path=D:\\emaysms.txt

3、测试

@SpringBootTest
public class SaasClientPropertiesTest {

@Autowired
private SaasClientProperties saasClientProperties;
@Value(${saas.client.emay.ip})
private String emayIp;

@Test
public void saasPropertiesTest() {
System.out.println(JSONUtil.toJsonStr(saasClientProperties));
System.out.println(emayIp);
}

}
举报

相关推荐

0 条评论