스프링 핵심 기술-14.Null-safty


Null-safty

스프링 프레임워크 5에 Null 관련 애노테이션이 추가되었습니다.

  1. @NonNull
  2. @Nullable
  3. @NonNullApi (패키지 레벨 설정)
  4. @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 (패키지 레벨 설정)




© 2019. by jaeuk