gpt4 book ai didi

java - Spring Boot 。使用@ConfigurationProperties注解的好处

转载 作者:行者123 更新时间:2023-11-30 01:44:53 28 4
gpt4 key购买 nike

你能解释一下使用@ConfigurationProperties注释的好处吗?

我必须选择我的代码。

首先使用@ConfigurationProperties注释:

@Service
@ConfigurationProperties(prefix="myApp")
public class myService() {
private int myProperty;
public vois setMyProperty(int myProperty) {
this.myProperty = myProperty;
}
// And this I can use myProperty which was injected from application.properties (myApp.myProperty = 10)
}

第二个没有 @ConfigurationProperties 注释。

看起来像这样:

@Service
public class myService() {
private final Environment environment;
public myService(Environment environment) {
this.environment = environment;
}
// And this I can use myProperty which was injected from application.properties (myApp.myProperty = 10)
environment.getProperty("myApp.myProperty")
}

对于一个属性,代码量看起来是相同的,但如果我有大约 10 个属性,第一个选项将有更多的代码样板(为此属性定义 10 个属性和 10 个 setter )。

第二个选项将进行一次环境注入(inject),并且不添加样板代码。

最佳答案

当您想要将属性文件中的一组属性与类属性映射时,请使用

@ConfigurationProperties。使用 @ConfigurationProperties 使您的代码更具可读性、分类性/模块化性和简洁性。怎么办?

  1. 您将应用程序属性映射到 POJO bean 并确保可重用性。

  2. 您正在使用带有抽象的 spring bean(属性会自动注入(inject))。

现在,如果您使用Environment bean,则始终必须调用getProperty,然后指定属性的字符串名称,因此需要大量样板代码。另外,如果您必须重构某些属性并重命名它,则必须在使用它的所有地方执行此操作。

因此,我的建议是,当您必须对属性进行分组并在多个位置重复使用时,请使用 @ConfigurationProperties。如果您必须在整个应用程序的一个地方使用一两个属性,那么可以使用环境。

关于java - Spring Boot 。使用@ConfigurationProperties注解的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58480364/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com