springBoot中的配置绑定(@Value和@ConfigurationProperties)

1. 复杂类型封装

@ConfigurationProperties:支持所有类型数据的封装,例如 Map、List、Set、以及对象等;
@Value:只支持基本数据类型的封装,例如字符串、布尔值、整数等类型。

2、应用场景不同

@Value 和 @ConfigurationProperties 两个注解之间,并没有明显的优劣之分,它们只是适合的应用场景不同而已。

若只是获取配置文件中的某项值,则推荐使用 @Value 注解;
若专门编写了一个 JavaBean 来和配置文件进行映射,则建议使用 @ConfigurationProperties 注解。

3. 使用位置不同

@ConfigurationProperties:标注在 JavaBean 的类名上;
@Value:标注在 JavaBean 的属性上。

4. 功能不同

@ConfigurationProperties:用于批量绑定配置文件中的配置;
@Value:只能一个一个的指定需要绑定的配置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot 类似于 @Value 注解的功能的注解是 @ConfigurationProperties。这个注解可以用于将配置文件的属性值注入到 Spring Boot 应用的类。与 @Value 注解不同的是,@ConfigurationProperties 注解可以将一组属性值到一个类上,而不是单独注入每个属性值。这样可以更方便地管理和组织配置属性。 使用 @ConfigurationProperties 注解时,需要在类上添加 @Component 或 @Configuration 注解,并使用 @EnableConfigurationProperties 注解来启用属性注入功能。然后,可以通过在类义对应的属性来接收配置文件的值,并提供相应的 getter 和 setter 方法。 例如,假设有一个配置文件 application.properties 义了一个属性: ``` myapp.name=My Application ``` 可以创建一个类来接收该属性值: ```java @Component @ConfigurationProperties(prefix = "myapp") public class MyAppProperties { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } ``` 然后,在需要使用该属性值的地方,可以通过注入 MyAppProperties 类来获取配置值: ```java @RestController public class MyController { private final MyAppProperties myAppProperties; public MyController(MyAppProperties myAppProperties) { this.myAppProperties = myAppProperties; } @GetMapping("/appname") public String getAppName() { return myAppProperties.getName(); } } ``` 这样,就可以将配置文件的属性值注入到应用的类,并在需要的地方使用了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏尧木子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值