[스프링 코어] 6. Null-Safety
-
스프링 프레임워크 5에 추가된 기능
-
목적 : (툴의 지원으로) 컴파일 타임에 NullPointException을 미연에 방지
-
@
-
@NonNull
-
@Nullable
-
@NonNullApi
(패키지 레벨 설정)-
간단 예)
@NonNullApi package me.jinmin; import org.springframework.lang.NonNullApi;
-
-
@NonNullFields
(패키지 레벨 설정)
-
-
간단 예제)
-
\main\java\me\jinmin\EventService
package me.jinmin; import org.springframework.lang.NonNull; public class EventService { @NonNull public String createEvent(@NonNull String name){ return "hellp" + name; } }
null
을 반환하면 안되고null
을 파라미터로 받으면 안된다.
-
\main\java\me\jinmin\AppRunner
package me.jinmin; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; @Component public class AppRunner implements ApplicationRunner { @Autowired EventService eventService; @Override public void run(ApplicationArguments args) throws Exception { eventService.createEvent(null); } }
- 🔔주의할 점
eventService.createEvent(null);
줄에서 개발툴(IntelliJ)이 null에 오류를 감지해야한다. 하지만, 아무런 오류를 찾지 못한다.- 해결법 : Settings → Build, Execution, Deployment → Compiler → Configure annotations... 클릭 → Nullable annotations 박스의 "+" 클릭 → Nullable (org.springframework.lang) 추가 → NotNull annotations 박스의 "+" 클릭 → NonNull(org.springframework.lang) 추가하고 IntelliJ 재시작! → 오류 메시지가 뜬다.
- 🔔주의할 점
-
Author And Source
이 문제에 관하여([스프링 코어] 6. Null-Safety), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jinmin2216/스프링-6.-Null-Safety저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)