스프링 데이터 Common 3. Null 처리 - KwangtaekJung/inflearn-spring-data-jpa-keesun GitHub Wiki

스프링 데이터 Common: Null 처리하기

  • 스프링 데이터 2.0 부터 자바 8의 Optional 지원.

    • Optional findById(Long id);
  • 콜렉션은 Null을 리턴하지 않고, 비어있는 콜렉션을 리턴합니다.

    • Null 체크하는 것은 불필요한 코드임.
  • 스프링 프레임워크 5.0부터 지원하는 Null 애노테이션 지원.

    • @NonNullApi, @NonNull, @Nullable.
      //package-info.java (package-info.java 파일은 javadoc API 문서화 할 때 사용 된다.)
      @org.springframework.lang.NonNullApi  //패키지 내 모든 메서드, 파라미터, 리턴타입에 NonNull 적용
      package com.example.inflearnspringdatajpakeesun;
    • 런타임 체크 지원 함.
    • JSR 305 애노테이션을 메타 애노테이션으로 가지고 있음. (IDE 및 빌드 툴 지원)
@NoRepositoryBean
public interface MyRepository<T, ID extends Serializable> extends Repository<T, ID> {

    <E extends T> E save(@NotNull E entity);

    List<T> findAll();

    @Nullable  //리턴 타입에 적용해주는 애너테이션이다. 하지만 리턴타입 앞에 붙이지는 않는 것에 주의할 것.
    <E extends T> Optional<E> findById(ID id);
}
  • 인텔리J 설정
    • Build, Execution, Deployment
      • Compiler
        • Add runtime assertion for notnull-annotated methods and parameters
⚠️ **GitHub.com Fallback** ⚠️