Null-safety

de_sj_awa·2021년 6월 26일
0
post-custom-banner

1. Null-safety

스프링 프레임워크 5에 추가된 Null 관련 애노테이션

  • @NonNull
  • @Nullable
  • @NonNullApi (패키지 레벨 설정)
  • @NonNullFields (패키지 레벨 설정)

목적

  • (툴의 지원을 받아) 컴파일 시점에 최대한 NullPointerException을 방지하는 것
@Service
public class EventService {

    @NonNull // 리턴에 null을 허용하면 안된다.
    public String createEvent(@NonNull String name){ // 매개변수에 null을 허용하면 안된다.
        //return null;
        return "Hello " + name;
    }
}
@Component
public class AppRunner implements ApplicationRunner {

    @Autowired
    EventService eventService;

    @Override
    public void run(ApplicationArguments args) throws Exception {
        String message = eventService.createEvent("spring");
    }
}

컴파일러에서 체크하는 방법

이후에 IntelliJ를 재실행한다.

패키지 레벨에서 설정하는 방법

  • @NonNullApi (패키지 레벨 설정)
  • @NonNullFields (패키지 레벨 설정)

@NonNullApi 패키지 이하의 모든 리턴값과 파라미터에 NonNull을 설정하는 것이다. 그리고 Null을 허용하는 곳에만 @Nullable을 적용하면 된다.

참고

  • 인프런 : 스프링 프레임워크 핵심 기술(백기선)
profile
이것저것 관심많은 개발자.
post-custom-banner

0개의 댓글