본문 바로가기
728x90
반응형

Study/Spring45

@Retention 어노테이션 정리(RetentionPolicy SOURCE vs CLASS vs RUNTIME) 자바에서 지향하는 방법은 아니지만 필요에 의해서 커스텀 애노테이션(Annotation)을 만들어야 할 때가 있습니다. 보통 예제 샘플 코드를 보면 메타 애노테이션으로 항상 붙어있고 RetentionPolicy=RUNTIME으로 되어습니다. 그렇기 때문에 그럴 때나 보게되는 애노테이션이라 @Retention 은 무시하고 @Target 정도만 확인하고 써왔습니다. 명확히는 @Retention 이라는 애노테이션이 있는지도 모르고 있었습니다. 그러던 중 회사 코드에서 JPA 엔티티(Entity) 클래스의 필드에 롬복(lombok)의 @NonNull 이 쓰인 것을 확인하고 이게 동작하는지가 궁금해지면서 찾아보게 되었습니다. 설명을 읽어보면 @Retention 애노테이션은 애노테이션의 라이프 사이클 즉, 애노테이션.. 2022. 5. 12.
Spring JPA ) No property desc/asc found for type Error JPA는 JAVA ORM의 일종으로 Query를 매우 간단하게 짤 수 있는 API이다. DB에 시간순으로 정렬된 자료를 OrderBy를 사용하여 쿼리문을 짤 때, java.util에 있는 Date 나 LocalDateTime으로 설정된 시간을 정렬할 수없다고 한다. List findAllOrderByCreatedatDesc(); 기존 쿼리에서 List findAllByOrderByCreatedatDesc(); 이처럼 All 과 Order 사이에 By를 넣어주자. 혹은 Native Query를 사용하여 정의하는 경우, @Query(value = "SELECT * FROM posttable ORDER BY createdat DESC", nativeQuery = true) List findAllOrderByC.. 2022. 5. 9.
[Spring] @Valid와 @Validated를 이용한 유효성 검증의 동작 원리 및 사용법 예시 Spring으로 개발을 하다 보면 DTO 또는 객체를 검증해야 하는 경우가 있습니다. 이를 별도의 검증 클래스로 만들어 사용할 수 있지만 간단한 검증의 경우에는 JSR 표준을 이용해 간결하게 처리할 수 있습니다. 이번에는 객체의 검증을 손쉽게 하는 방법에 대해 알아보고자 합니다. 1. @Valid와 @Validated [ @Valid를 이용한 유효성 검증 ] @Valid의 개념 및 사용법 @Valid는 JSR-303 표준 스펙으로써 제약 조건이 부여된 객체에 대해 빈 검증기(Bean Validator)를 이용해서 검증하도록 지시하는 어노테이션이다. Spring에서는 LocalValidatorFactoryBean을 이용해 JSR 표준의 검증 기능을 사용할 수 있는데, LocalValidatorFactory.. 2022. 5. 9.
[Spring] @Component @Bean @Component 싱글톤 클래스 빈을 생성하는 어노테이션이다. 물론 @Scope("Prototype") 어노테이션을 통해 싱글톤이 아닌 빈을 생성할 수 있다. 또한 @Service, @Repository 어노테이션 또한 이에 포함된다. 이 어노테이션은 선언적인 어노테이션이다. 즉, 패키지 스캔 안에 이 어노테이션은 " 이 클래스를 정의했으니 빈으로 등록해줘" 라는 뜻이 된다. @Component Java Bean에 등록하지 않아도 자동 주입이 가능하도록 해주는 어노테이션입니다. 개발자가 직접 개발한 클래스를 Bean에 등록할 경우 @Component 어노테이션을 사용하면 됩니다. @Bean 주로 @Configuration 어노테이션이 들어간 Spring을 설정하는 클래스 내에 들어가는 메소드에서 선언한.. 2021. 11. 5.
728x90
반응형