스프링 데이터 Common 3. Null 처리 - KwangtaekJung/inflearn-spring-data-jpa-keesun GitHub Wiki
-
스프링 데이터 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 및 빌드 툴 지원)
- @NonNullApi, @NonNull, @Nullable.
@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
- Compiler
- Build, Execution, Deployment