Рубрики
Без рубрики

Читайте Свойства Пружины, как профессионал

Управление Конфигурацией Имеет Важное Значение ☝️ Необходимость чтения конфигурации в a… Помечено как веб-разработчик, учебник, облако, java.

Управление Конфигурацией Имеет Важное Значение ☝️

Необходимость чтения конфигурации чистым, организованным способом быстро растет, особенно с распространением разработки облачных приложений и архитектуры микросервисов, которая требует большого количества настроек интеграции и подключения.

Что Не Так С Типичным Способом Чтения Конфигурации 🤷

Ничего. Однако это может стать сложным и запутанным, когда мы захотим внедрить многие из этих конфигураций в наш код.

Давайте рассмотрим пример с одним файлом свойств и испытание

применение.свойства ⚙️

demo.test.name=testName  
demo.test.age=16

применение.свойства || ⚙️

@SpringBootTest  
class DemoApplicationTests {  
   @Value("${demo.test.name}")  
   private String name;  

  @Value("${demo.test.age}")  
   private Integer age;  

  @Test  
  void loadProperty() {  
      assertEquals("testName", name);  
      assertEquals(16, age);  
  }  
}

Теперь представьте, что у нас есть 5 или 10 таких свойств, из-за которых наш код будет загроможден и труден для понимания 🥴

@Свойства конфигурации Спешат На Помощь 🤠

Это позволяет нам вводить значения из файла application.properties в пользовательский класс.

@Component  
@ConfigurationProperties(prefix = "demo.test")  
@Setter  
@Getter  
public class DemoTestConfigs  
{  
    private String name;  
    private Integer age;  
}
  • Аннотация @Component предназначена для указания Spring управлять этим классом как компонентом и предоставлять его для внедрения.
  • @ConfigurationProperties – это то, что делает волшебство

    • Он просматривает файлы свойств в пути к классам и загружает свойства, начинающиеся с demo.test
  • Ломбок @@Setter предназначен для включения @ConfigurationProperties для заполнения значений в Конфигурациях демонстрационного теста класс.

Затем мы можем просто внедрить компонент демонстрационных тестовых конфигураций в наши сервисы. 🤝

Давайте проверим это в тесте

@SpringBootTest  
public class ConfigurationPropertiesTest  
{  
  @Autowired  
  private DemoTestConfigs demoTestConfigs;  

  @Test  
  public void loadPropertiesUsingConfigurationProperties(){  
        assertEquals("testName", demoTestConfigs.getName());  
        assertEquals(16, demoTestConfigs.getAge());  
  }  
}

Вывод 👇

Мы видели, как @ConfigurationProperties помогает нам объединить наши аналогичные конфигурации в единый класс компонентов, который мы можем вводить и использовать вместо указания каждого из них.

Код На GitHub 💻

Оригинал: “https://dev.to/jarjanazy/read-spring-configs-like-a-pro-1do3”