zoukankan      html  css  js  c++  java
  • Spring Boot 自定义参数

    2种取值方式区别是使用@Value注解的属性,必须在配置文件中存在,否则启动检查不通过,会报错导致无法启动。

    JAVA类

    1, 使用@Value注解方式

    @Component
    public class AliyunConfig {
        @Value("${oss.accessKeyId}")
        private String accessKeyId;
        @Value("${oss.accessKeySecret}")
        private String accessKeySecret;
    
        ...
    }
    

    2, 使用@ConfigurationProperties注解方式

    @ConfigurationProperties(prefix = "oss")
    public class AliyunConfig {
        
        private String accessKeyId;
        
        private String accessKeySecret;
    
        ...
    }
    

    配置文件

    application-dev.yml

    oss:
      accessKeyId: xxxxxx
      accessKeySecret: xxxxxxxxx
    

    @ConfigurationProperties 配置激活方式

    1, 增加@Component注解

    让 Component Scan 扫描到, 显然当类所在的包被 Spring @ComponentScan 注解扫描到才会生效

    2, 通过 Spring 的 Java Configuration 特性实现同样的效果

    @Configuration
    public class BeanConfig {
        @Bean
        public AliyunConfig aliyunConfig() {
    	return new AliyunConfig();
        }
    }
    

    3,使用 @EnableConfigurationProperties 注解

    让我们的类被 Spring Boot 所知道,在该注解中其实是用了@Import(EnableConfigurationPropertiesImportSelector.class) 实现

    @Configuration
    @EnableConfigurationProperties(AliyunConfig.class)
    public class BeanConfig {
    
    }
    

    @ConfigurationProperties 配置验证

    类使用 @Validated注解,在字段上添加 bean validation 注解

    @Data
    @ConfigurationProperties(prefix = "oss")
    @Validated
    public class AliyunConfig {
        
        @NotNull private String accessKeyId;
        
        private String accessKeySecret;
    
        ...
    }
    
  • 相关阅读:
    【BZOJ4517】排列计数(排列组合)
    【BZOJ2733】永无乡(线段树,启发式合并)
    【BZOJ1237】配对(贪心,DP)
    【BZOJ1492】货币兑换Cash(CDQ分治)
    CDQ分治模板
    【BZOJ3932】任务查询系统(主席树)
    【BZOJ3295】动态逆序对(BIT套动态加点线段树)
    【BZOJ3626】LCA(树上差分,树链剖分)
    图书管理系统
    树集合,树映射
  • 原文地址:https://www.cnblogs.com/magicpose/p/11928552.html
Copyright © 2011-2022 走看看