0
点赞
收藏
分享

微信扫一扫

spring-boot全局配置引入

Greatiga 2023-08-08 阅读 55
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 条评论