2022/02/06 Spring Expression Language(SpEL), Null Safety
SpEL(Spring Expression Language)
Expression Language(표현언어)는 짧고 간단한 문법을 통해 데이터나 설정 값을 얻어올 수 있게 하는 특별한 형태의 표현식에 가까운 간편한 언어
SpEL은 그 중에서도 스프링 모든 영역에서 사용 가능한 언어형식
- 주로 @Value("$(config.value)")와 같은 방식으로 설정값을 주입 받는데 활용(주로 많이 쓰임)
SpEL의 값 평가(evaluation)
- SpelParser는 ""안에 들어있는 문자열을 평가(evaluation)해서 결과값을 만들어낸다
- 'Hello World'는 문자열 리터럴이 되며,concat이라는 메서드도 호출할 수있다.
- Spring 객체를 new로 생성해서 사용도 가능
위의 예제는 실무적으로 잘사용하지 않고 아래 예제처럼 사용할떄 사용한다.
Bean의 Property를 설정할 때 사용하는 방식
* 기본적으로 #(<expression string>} 방식으로 property를 설정
* application.properties(또는 application.yml)의 값을 가져올 때 ${<property name>} 방식으로 가져옴
Null Safety
널 안정성을 높이는 방법
- 아래와 같은 코드를 만들지 않는 방법(자바는 데이터를 받아 오거나 처리할때 null check를 매번 해줘야한다.. 혹시 값이 없을 경우가 있으니까)
- 혹은 아래와 같은 널 체크를 하지 않아서 발생하는 NPE(Null Pointer Exception)을 방지하는 방법
- 완벽한 방법은 아니지만 IDE(Intellij, Eclipse)에서 경고를 표시함으로써 1차적인 문제를 방지하고, 정확한 에러 위치를 확인할 수 있도록 도움
null check 코드는 보일러플레이트 매번 체크해가면서 코드를 추가해야하는데 Spring 에서는 Null Safety를 통해 보일러플레이트코드를 방지할 수있다.
@NonNull Annotation
- 해당 값이나 함수 등이 Null이 아님을 나타내는 어노테이션
- org.springframework.NonNull을 사용
- 메서드 파라미터에 붙이는 경우 : null이라는 데이터가 들어오는 것을 사전에 방지함
- 프로퍼티에 붙이는 경우: null을 저장하는 경우 경고
- 메서드에 붙이는 경우 :null을 리턴하는 경우 경고, 응답값을 저장하거나 활용하는 쪽도 NonNull이라고 신뢰하고 사용
@Nullable Annotation
- @NonNull과 반대로 해당 데이터가 null일 수 있음을 명시
- 해당 애노테이션이 부은 값을 사용하는 경우 null check를 항상 수행하도록 경고
Author And Source
이 문제에 관하여(2022/02/06 Spring Expression Language(SpEL), Null Safety), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dolljang/20220206-Spring-Expression-LanguageSpEL-Null-Safety저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)