首页 > 其他分享 >@ConfigurationProperties 和 @EnableConfigurationProperties 的作用

@ConfigurationProperties 和 @EnableConfigurationProperties 的作用

时间:2024-11-28 20:43:54浏览次数:6  
标签:String oss private ConfigurationProperties 注解 作用 EnableConfigurationProperties

有时候,我们希望从配置文件中获取一系列配置信息,除了使用@Value注解外,还有一种更好的方式,就是使用@ConfigurationProperties注解。

比如,假设在配置文件中存在如下 OSS 配置信息:

spring:
  oss:
    enable: true
    bucket-name: local

我们可以在对应的实体类上,使用@ConfigurationProperties注解,并指定前缀为spring.oss,如下:

@Data
@ConfigurationProperties(prefix = "spring.oss")
public class FileProperties {
    private Boolean enable;
    /**
     * 默认的存储桶名称
     */
    private String bucketName = "local";
}

这样,我们就可以很方便的获取到配置文件中的配置信息,而无需使用@Value注解。

但是,仅用@ConfigurationProperties注解,并不能将配置文件中的配置信息注入到对应的实体类中,也无法从容器中获取到对应的实体类,还需要使用@EnableConfigurationProperties注解,如下:

@Configuration
@EnableConfigurationProperties(FileProperties.class)
public class OssAutoConfiguration {
}

也可以在加了@ConfigurationProperties注解的类上加上@Component注解,能达到@EnableConfigurationProperties注解相同的效果:

@Data
@Component
@ConfigurationProperties(prefix = "spring.oss")
public class FileProperties {
    private Boolean enable;
    private String bucketName = "local";
}

之后,需要用到相关配置信息时,可直接从容器中获取:

@Component
public class OssService {
    @Autowired
    private FileProperties fileProperties;
}

所以@EnableConfigurationProperties注解的作用是:使使用@ConfigurationProperties注解的类生效。

另外,如果存在嵌套的配置信息,比如:

spring:
  oss:
    enable: true
    bucket-name: local
    aliyun:
      endpoint: oss-cn-beijing.aliyuncs.com
      access-key: xxx
      secret-key: xxx
      bucket-name: local
      region: cn-beijing

则在实体类中,使用@NestedConfigurationProperty注解,如下:

@Data
@ConfigurationProperties(prefix = "spring.oss")
public class FileProperties {
    private Boolean enable;
     private String bucketName = "local";
     @NestedConfigurationProperty
     private AliyunFileProperties aliyun;
}
@Data
public class AliyunFileProperties {
    private String endpoint;
    private String accessKey;
    private String secretKey;
    private String bucketName;
    private String region;
}

参考:关与 @EnableConfigurationProperties 注解

标签:String,oss,private,ConfigurationProperties,注解,作用,EnableConfigurationProperties
From: https://www.cnblogs.com/Higurashi-kagome/p/18575130

相关文章

  • JavaScript第二章,局部变量和全局变量,作用域,闭包1.1
    1.局部变量和全局变量全局变量:在函数外部声明的变量或在任何地方未使用var、let或const关键字声明的变量(这会导致隐式全局变量)都是全局变量。全局变量在整个脚本中都是可访问的。局部变量:在函数内部使用var、let或const关键字声明的变量是局部变量。它们只能在声明它们的函......
  • 举例说明a标签的作用都有哪些?
    a标签,也就是锚点标签,在前端开发中主要作用是创建超链接,用于从一个页面导航到另一个页面,或者在同一页面内进行跳转。它的作用可以概括为以下几种:链接到外部网站:这是a标签最常见的使用方式。通过设置href属性为目标网址,可以链接到任何外部网站。<ahref="https://www......
  • inode的特殊作用及案例
    inode的特殊作用及案例由于inode号码与文件名分离,这种机制导致了一些Unix/Linux系统特有的现象1.有时,文件名包含特殊字符,无法正常删除。这时,直接删除inode节点,就能起到删除文件的作用2.移动文件或重命名文件,只是改变文件名,不影响inode号码。3.打开一个文件以后,系统就以i......
  • 前端Shadow DOM 使用,Shadow DOM教程,Shadow DOM 作用
    ShadowDOM是WebComponents的一部分,允许开发者将一个元素的内部结构和样式封装在一个独立的DOM中,从而避免与外部页面的其他样式和脚本发生冲突。以下是ShadowDOM的基本概念和用法:1.基础概念封装性:ShadowDOM提供了样式和内容的封装,只有在ShadowDOM内部定义的样式......
  • Abp框架本地化默认语言设置不起作用问题
    问题AbpvNext框架,后台服务使用IStringLocalizer获得翻译时,与设置的“Abp.Localization.DefaultLanguage”不一致,一直是按服务器的本地语言来的。分析Abp中重写了IStringLocalizer,Abp源码简化如下。publicclassAbpDictionaryBasedStringLocalizer:IAbpStringLocalizer{.........
  • 数字孪生在智慧消防中能够发挥什么作用?
    近年来,数字孪生技术在智慧城市的多个领域得到广泛应用,而在智慧消防中,其独特的优势更是为消防工作注入了强劲动力。通过数字孪生技术,消防管理可以从传统的事后应对转变为全面的事前预防、实时监测和精准指挥,为城市安全带来革命性的提升。实现消防设施全景监控数字孪生能够构建虚......
  • 前端下载文件流,设置返回值类型responseType:‘blob‘无效的问题,用了mock之后,下载不起
    参考链接:https://blog.csdn.net/weixin_46872121/article/details/135616496前言:本是一个非常简单的请求,即是下载文件。通常的做法如下:1.前端通过VueAxios向后端请求,同时在请求中设置响应体为Blob格式。2.后端相应前端的请求,同时返回Blob格式的文件给到前端(如果没有步骤1设置......
  • 你有使用过preload、preconnect、prefetch这些属性吗?说说它们都有什么作用?
    是的,我了解preload、preconnect和prefetch这些前端性能优化相关的属性。它们各自作用如下:preload(预加载):preload是一种声明式的fetch,用于强制浏览器请求当前页面关键资源,并将其存储在缓存中,以便在需要时更快地使用。它告诉浏览器:“我确定稍后会需要这个资源,请尽快下......
  • 数据库(总结自小林coding)|索引失效的场景、慢查询、原因及如何优化?undo log、redo log
    数据库(总结自小林coding)|索引失效的场景、慢查询、原因及如何优化?undolog、redolog、binlog作用、MySQL和Redis的区别说一下索引失效的场景?什么是慢查询?原因是什么?可以怎么优化?undolog、redolog、binlog有什么用MySQL和Redis的区别是什么说一下索引失效的场景......
  • 【原创】linux实时操作系统xenomai看门狗(watchdog)机制及作用介绍
    版权声明:本文为本文为博主原创文章,转载请注明出处https://www.cnblogs.com/wsg1100。如有错误,欢迎指正。目录一、前言PREEMPT-RT(RTThrottling)一、xenomaiwatchdog介绍二、xenomaiwatchdog工作原理三、使用场景本文介绍xenomaiwatchdog,有什么用?它是如何工作的?一、前言介绍......