Kotlin Spring Boot 구성 속성 모범 사례
우리는 무엇을 가지고
모든 개발자가 활용하는 첫 번째 기능 중 하나는 Spring Boot 스택에서 작업하는 것입니다Configuration Properties.
다음과 같이 구성할 수 있습니다.
기본적으로 메서드 수준 빈은 클래스 수준과 동일하지만 단일 클래스에서 N개의 속성 빈을 생성할 수 있습니다.
속성 자체는 다양한 방식으로 전파될 수 있지만 가장 일반적인 방법은 애플리케이션 속성/yaml 파일을 통한 것입니다.
그들이 될 수 있는 속성에 대한 중요한 사항은 다음과 같습니다.
명명
Spring은 구성(bean이 있는 클래스) 및 구성 속성 클래스에 대한 다음 규칙을 따릅니다.
@Configuration
- *Configuration.kt
@ConfigurationProperties
- *Properties.kt
다음과 같이 혼동을 방지하기 위해 사용하는 생태계의 표준을 따르는 것이 좋습니다.
Properties class is not a configuration
안티패턴
구성과 속성의 차이점
다음 예제는 스프링이 이러한 개념과 다르게 작동하기 때문에 안티 패턴입니다.
@Configuration
@ConfigurationProperties
class MyProperties {
String value;
}
구성 속성 빈은 수동이 아닌 Spring에 의해 초기화되어야 합니다.
다음 예는 구성 속성이 bean이 구성과 느슨하게 결합될 때 훨씬 더 자연스럽게 초기화될 수 있기 때문에 패턴 방지입니다. 예를 들어
@ConstructorBinding
를 사용하면 a problem입니다.@Component
@ConfigurationProperties
class MyProperties {
String value;
}
표준, 코드 일관성
모범 사례의 목표는 황금률을 찾는 것입니다. 데이터 구조가 속성과 클래스 간의 매핑을 깔끔한 방식으로 나타낼 것으로 기대하는 곳입니다.
모든 요구 사항을 충족하면 다음 예제가 있습니다.
데모
다음과 같은 속성 집합이 정의되어 있다고 가정해 보겠습니다.
io.github.artemptushkin.example:
defaultOverriddenProperty: overridden
requiredStringProperty: required-value
notNullListProperty: ["foo", "baz"]
다음 런타임 속성을 제공합니다.
io.github.artemptushkin.example.defaultedStringProperty=default
io.github.artemptushkin.example.defaultOverriddenProperty=overridden
io.github.artemptushkin.example.requiredStringProperty=required-value
io.github.artemptushkin.example.optionalStringProperty=null
io.github.artemptushkin.example.notNullListProperty[0]=foo
io.github.artemptushkin.example.notNullListProperty[1]=baz
요점은 다음과 같습니다.
@ConstructorBinding
우리 use create immutable objects
- Kotlin 기본 생성자 값을 사용하면 기본값을 한 줄에 바로 사용할 수 있습니다 .
- Null 허용 필드를 방지하기 위해 컬렉션을 기본적으로 항상 빈 상태로 초기화합니다 .
요약
깔끔한 클래스를 작성하고 한 프로젝트에서 다른 프로젝트로 그리고 회사 내에서 간결하게 유지할 수 있습니다.
이 메모가 도움이 되었기를 바랍니다.
Reference
이 문제에 관하여(Kotlin Spring Boot 구성 속성 모범 사례), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/art_ptushkin/kotlin-spring-boot-configuration-properties-best-practices-13e6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)