Null-safty
- @NonNull
- @Nullable(null가능)
- @NonNullapi
- @NonNullFields
목적
- 컴파일 시점에 최대한 NullPointerException을 방지하는 것.
--> null을 허용 불용 할 것인가의 툴을 지원을 받아 NullPointerException 미연에 방지 가는 한 것이다
아무런 표시가 뜨지 않고 저 밑줄에도 어떠한 내용이 나오지 않습니다. null을 주었는데 빨간 밑줄또한 전혀 보이지 않는 상황이다. 이러한 오류가 없다면 나중에 코드가 길어지기라도 한다면 nullpointer오류가 날 가능성이 매우 높다. 그리고 현재 아무런 위험 표시가 되어있지 않아 그냥 넘어가기 일쑤이다.
해당 관련 오류를 출력하기 위해서는 약간의 설정이 필요하다.
settings -> compiler 에서 Configuartion annotations 들어가
nullable annotations 에 추가.
org.springframework.lang.Nullable |
Notbull annotaions 에 추가.
org.springframework.lang.NonNull | false |
그 후에 빨간줄은 아니지만 밑줄에 이런 문구가 잡히기 시작한다.
Passing 'null' argument to parameter annotated as @NotNull 해석하자면 Notnull이 붙은것에 널을 넘기려 하고 있다는 뜻이다.
-만약 if 만약 정산된 동작을 할 수 있도록 인자에 null 아닌 정상 인자를 보내고 함수 자체가 null을 리턴하면 어떻게 될 까?
받는 쪽이 아닌 보낸쪽에 밑줄이 그어진다.
해당 빈에 빨간줄이 아닌 밑줄로써 표현이 되는 것을 볼수 있다.
null' is returned by the method declared as @NonNull
@Nonnull이라는 애노테이션으로 해당 경고를 보여주고 있습니다.
package 에 대한 방법에서도 설정이 가능하다 .
@ NonNullapi -> 패키지 파일 만들어서 그 안에서 설정하는 것.
spring date Repostiory에서 애노테이션 사용할 수 있다.
해당 파일 맨 상단에다가 @NonNullapi라고 명시하면 이 패키지안에 모든 리턴과 인자에 논널을 설정하는 것입니다!
null을 허용하는 부분만 따로 설정을 하면 된다.
'Spring > Spring_CoreTechnologies' 카테고리의 다른 글
SpringFrameWork CoreTechnition_section_마무리 (0) | 2020.11.29 |
---|---|
SpringFrameWork CoreTechnition_section5_14부 (0) | 2020.11.25 |
SpringFrameWork CoreTechnition_section5_13부 (0) | 2020.11.24 |
SpringFrameWork CoreTechnition_section5_12부 (0) | 2020.11.24 |
SpringFrameWork CoreTechnition_section4_11부 (0) | 2020.11.20 |
댓글