스프링 핵심 기술-14.Null-safty
Null-safty
스프링 프레임워크 5에 Null 관련 애노테이션이 추가되었습니다.
- @NonNull
- @Nullable
- @NonNullApi (패키지 레벨 설정)
- @NonNullFields (패키지 레벨 설정)
목적
- (툴의 지원을 받아) 컴파일 시점에 최대한 NullPointerException을 방지하는 것
구현 코드
import org.springframework.lang.NonNull;
@Service
public class EventService {
@NonNull // 리턴도 널을 허용하지 않는다
public String createEvent(@NonNull String name){ // 파라미터 널 미허용
return "hello " + name
}
}
참고로 설정을 해 주어야 하는데,
IntelliJ IDEA - Preference - Build, Execution, Deployment - compiler
탭에서
Configure annotations… 버튼
스프링의 @NonNull, @Nullable을 추가해준 후,
선택 (체크) 하고 껐다 켜면 적용되는 걸 알 수 있습니다.
추가로 package-info 파일 만들어서 패키지 전체가 NonNull인 경우 탐색, @NonNullApi (패키지 레벨 설정)
해당 필트만 지정해서 설정 등이 가능하다. @NonNullFields (패키지 레벨 설정)