@ConfigurationProperties注解获取yml配置文件信息

这篇具有很好参考价值的文章主要介绍了@ConfigurationProperties注解获取yml配置文件信息。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

注解介绍

ConfigurationProperties注解主要用于将外部配置文件配置的属性填充到这个**Spring Bean实例**中。

需要注意:它自己单独使用无效,需要配合其它注解一起使用。且对于Spring Bean才生效,普通的new 对象不生效。

ConfigurationProperties的使用方式:

  1. @ConfigurationProperties + @Component(或其它实例化Bean的注解)注解到bean定义类上
  2. @ConfigurationProperties + @Bean注解到配置类的bean定义方法上
  3. @ConfigurationProperties注解到普通类,然后通过@EnableConfigurationProperties定义为bean

使用方式

配置文件:

sftp:
  host: 127.0.0.1
  port: 22
  username: admin
  password: 123456

1. @ConfigurationProperties + @Component

@ConfigurationProperties + @Component(或其它实例化Bean的注解)注解到bean定义类上

@Data
@Component
// @Configuration
@ConfigurationProperties(prefix = "sftp")
public class Sftp {

    private String host;

    private String port;

    private String username;

    private String password;
}

2. @ConfigurationProperties + @Bean

@ConfigurationProperties + @Bean注解到配置类的bean定义方法上

@Data
public class Sftp {

    private String host;

    private String port;

    private String username;

    private String password;
}
@Configuration
public class BeanConfig {

    @Bean
    @ConfigurationProperties(prefix = "sftp")
    public Sftp sftp() {
        return new Sftp();
    }
}

此种用法遇到的坑:重复使用@ConfigurationProperties
如果将代码改成这样:

@Data
@ConfigurationProperties(prefix = "sftp")
public class Sftp {

    private String host;

    private String port;

    private String username;

    private String password;
}
@Configuration
public class BeanConfig {

    @Bean
    @ConfigurationProperties(prefix = "aaaa")
    public Sftp sftp() {
        return new Sftp();
    }
}

这种方式上有@ConfigurationProperties注解,且类上也有@ConfigurationProperties注解的,只有方法上的@ConfigurationProperties会生效(可以理解为类上的注解方法的给重写了)。

3. @ConfigurationProperties + @EnableConfigurationProperties

@ConfigurationProperties注解到普通类,然后通过@EnableConfigurationProperties定义为bean文章来源地址https://www.toymoban.com/news/detail-565650.html

@Data
@ConfigurationProperties(prefix = "sftp")
public class Sftp {

    private String host;

    private String port;

    private String username;

    private String password;
}
@SpringBootApplication
@EnableConfigurationProperties(value = {Sftp.class})
public class SpringbootApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootApplication.class, args);
    }
}

到了这里,关于@ConfigurationProperties注解获取yml配置文件信息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot中配置文件详解(yml、properties全局配置和自定义配置),获取配置方式

    目录 全局配置文件 application.properties配置文件 application.yaml配置文件  value值为普通数据类型(例如数字、字符串、布尔等)  value值为数组和单列集合  value值为Map集合  value值为对象或嵌套对象 @Value 自定义配置 使用@PropertySource加载配置文件 随机数设置及参数间引用 随机值设

    2024年02月14日
    浏览(35)
  • SpringBoot获取配置:@Value、@ConfigurationProperties方式

    配置文件yml 注入(需要把类交给spring) 使用(可以直接在注入的类中使用) 测试 解释 不能这样直接注入到静态属性上 这样是获取不到值的 注入(需要注入到非静态set方法上,再复制给静态属性) 使用(有两种方式:静态属性方式、get方式) 测试 注入 使用、测试 注入 使用、

    2024年02月05日
    浏览(24)
  • 企业级信息系统开发学习1.3——利用注解配置取代Spring配置文件

    一、利用注解配置类取代Spring配置文件 (一)打开项目 Maven项目 - SpringDemo (二)创建新包 在net.huawei.spring包创建day03子包 (三)拷贝类与接口 将day02子包的类与接口拷贝到day03子包 (四)创建注解配置类 在day03子包里创建SpringConfig类,取代Spring配置文件 package net.huawei.spri

    2024年02月09日
    浏览(35)
  • springboot注解之@ConfigurationProperties注解

    目录 一 . 什么是@ConfigurationProperties注解 二 . @ConfigurationProperties的参数解释 三  举例说明  在 SpringBoot 中,当想需要获取到配置文件数据时,除了可以用 Spring 自带的 @Value 注解外,SpringBoot 还提供了一种更加方便的方式:@ConfigurationProperties。只要在 Bean 上添加上了这个注解,

    2024年02月01日
    浏览(24)
  • Springboot - 打印多个yml最终合并配置信息

    Springboot项目中多个yml配置优先级和最终配置容易混淆,本文帮助打出yml优先级和最终配置,以yml格式打印到控制台,便于开发调试。 一、服务启动后打印 二、监听事件打印

    2024年02月11日
    浏览(39)
  • Spring Boot学习随笔- @SpringBootApplication详解、加载绝对路径配置文件、工厂创建对象(@ConfigurationProperties、@Value)

    学习视频:【编程不良人】2021年SpringBoot最新最全教程 这是一个 组合注解 ,就是由多个注解组成。下列注解红框内称为 元注解 (jdk提供) @Target :指定注解作用范围 @Retention :指定注解什么时候生效 重要注解 @SpringBootConfiguration:自动配置Spring、SpringMVC相关环境 @EnableAutoCo

    2024年02月05日
    浏览(44)
  • Spring Boot读取yml或者properties配置信息

    编写配置类 开始使用

    2024年02月14日
    浏览(44)
  • SpringBoot案例-配置文件-yml配置文件

    SpringBoot提供了多种属性配置方式 application.properties application.yml application.yaml 常见配置文件格式对比 XML(臃肿) properties(层级结构不够清晰) yml/yaml( 简洁,以数据为中心, 推荐使用 ) 基本语法 大小写敏感 数值前必须有空格 ,作为分隔符 使用缩进表示层级关系,缩进时

    2024年02月11日
    浏览(33)
  • java springboot yml文件配置 多环境yml

    如果是properties改用yml,直接新增一个 .yml ,删除原 .properties ,系统会自动扫描 application.properties 和 application.yml文件(如果同时存在两个文件,则会优先使用.properties文件?)。 注意:改了之后 需要maven 命令 clean一下 ,清个缓存。 一、yml多环境 如果需要配置多环境的配置

    2024年02月15日
    浏览(32)
  • 17、YML配置文件及让springboot启动时加载我们自定义的yml配置文件的几种方式

    其实本质和.properties文件的是一样的。 Spring Boot默认使用SnakeYml工具来处理YAML配置文件,SnakeYml工具默认就会被spring-boot-starter导入,因此无需开发者做任何额外配置。 YAML本质是JSON的超级,它在表示结构化文档时更有表现力。 ▲ properties文件使用 .分隔符 作为结构化的表现:

    2024年02月14日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包