Loading...
Spring Framework Reference Documentation 7.0.2의 Annotations의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
Spring Framework는 HTTP 매개변수가 required 속성을 명시적으로 정의하지 않고도 필요한지 여부를 결정하기 위해 Kotlin null-safety를 활용합니다. 이는 @RequestParam name: String?이 필수값이 아닌 것으로 처리되고, 반대로 @RequestParam name: String은 필수값으로 처리됨을 의미합니다. 이 기능은 Spring Messaging @Header 어노테이션에서도 지원됩니다.
유사한 방식으로, @Autowired, @Bean, 또는 @Inject가 사용된 Spring 빈 주입은 빈이 필요한지 여부를 결정하기 위해 이 정보를 사용합니다.
예를 들어, @Autowired lateinit var thing: Thing은 타입이 Thing인 빈이 애플리케이션 컨텍스트에 반드시 등록되어야 함을 의미하는 반면, @Autowired lateinit var thing: Thing?은 그러한 빈이 존재하지 않더라도 오류를 발생시키지 않습니다.
같은 원칙에 따라, @Bean fun play(toy: Toy, car: Car?) = Baz(toy, car)는 타입이 Toy인 빈은 애플리케이션 컨텍스트에 반드시 등록되어야 하지만, 타입이 Car인 빈은 존재할 수도 있고 존재하지 않을 수도 있음을 의미합니다. 동일한 동작이 자동 주입 생성자 매개변수에도 적용됩니다.
프로퍼티 또는 매개변수가 있는 primary 생성자를 가진 클래스에 대해 빈 검증을 사용하는 경우,
@field:NotNull또는@get:Size(min=5, max=15)와 같은 어노테이션 사용 위치 대상을 사용해야 할 수 있으며, 이에 대해서는 이 Stack Overflow 답변에 설명되어 있습니다.
Classes and Interfaces
Bean Registration DSL