springboot读取自定义配置

springboot读取自定义配置

application.yml自定义配置

my-app:
  ip1:
    #dmz1 ftp服务器
    ipAddress: 172.12.23.456
    port: 21
    username: admin
    password: admin
  ip2:
    ipAddress: 172.12.23.457
    port: 21
    username: admin
    password: admin

方式1,@Value注解

@Component
public class IpConfig {
    @Value("${my-app.ip1.ipAddress}")
    public String ipAddress1;
    @Value("${my-app.ip1.port}")
    public Integer port1;
    @Value("${my-app.ip1.username}")
    public String username1;
    @Value("${my-app.ip1.password}")
    public String password1;

    @Value("${my-app.ip2.ipAddress}")
    public String ipAddress2;
    @Value("${my-app.ip2.port}")
    public Integer port2;
    @Value("${my-app.ip2.username}")
    public String username2;
    @Value("${my-app.ip2.password}")
    public String password2;
}

测试取值

@Component
public class TaskConfiguration {
    private final IpConfig ipConfig;
    @Autowired
    TaskConfiguration(IpConfig ipConfig) {
        this.ipConfig= ipConfig;
    }

    @PostConstruct
    public void task1() {
		//172.12.23.456
        String ipAddress1 = ipConfig.getIpAddress1();
    }

方式2,@ConfigurationProperties(prefix = “my-app”)注解

@Component
@ConfigurationProperties(prefix = "my-app")
@Data
public class MyApp {
    private Ip1 ip1;
    private Ip2 ip2;

    @Data
    public static class Ip1 {
        private String ipAddress;
        private int port;
        private String username;
        private String password;
    }
    @Data
    public static class Ip2 {
        private String ipAddress;
        private int port;
        private String username;
        private String password;
    }
}

测试@ConfigurationProperties注解取值

@Component
public class TaskConfiguration {
    private final String ipAddress1;
    private final String ipAddress2;
    @Autowired
    TaskConfiguration(MyApp myApp) {
        this.ipAddress1 = myApp.getIp1().getIpAddress();
        this.ipAddress2 = myApp.getIp2().getIpAddress();
    }

    @PostConstruct
    public void task1() {
        System.out.println(ipAddress1);
        System.out.println(ipAddress2);
    }
}

参考文档

springboot类型安全的绑定(使用@ConfigurationProperties注解一次性拿到application.yml 配置文件中的多个属性值)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值