티스토리 뷰
반응형
변수를 키로 사용하여 맵에서 값을 조회하려고 합니다. 변수를 직접 참조할 수 있기를 원 jobTitle하지만(이 경우 ), 어떤 이유로 변수 를 작동시키려면 #root.또는 를 접두사로 사용해야 #this.합니다. 그래서 이것은 작동합니다:
parser.parseExpression("{ \"Manager\":\"37.5\", \"CEO\":\"40\"}[#root.jobTitle]"
("37.5"로 해결)
하지만 이것은하지 않습니다
parser.parseExpression("{ \"Manager\":\"37.5\", \"CEO\":\"40\"}[jobTitle]"
(널로 해석됨)
jobTitle컨텍스트 개체의 루트 속성입니다. SpEL 문서를 보면 속성을 직접 참조할 수 있어야 하는 것 같습니까? 내가 뭔가 잘못하고 있습니까?
아래 전체 작업 코드
public static void main(String[] args) {
ExpressionParser parser = new SpelExpressionParser();
Employee employee = new Employee("Joe Bloggs", "Manager");
Expression exp = parser.parseExpression(
"{ \"Manager\":\"37.5\", \"Ceo\":\"40\"}[#root.jobTitle]");
StandardEvaluationContext context = new StandardEvaluationContext(employee);
context.setRootObject(employee);
System.out.println(exp.getValue(context, String.class));
}
static class Employee {
private String firstName;
private String jobTitle;
Employee(String firstName, String jobTitle) {
this.firstName = firstName;
this.jobTitle = jobTitle;
}
public String getJobTitle() {
return jobTitle;
}
}
SpEL 문서를 보면 속성을 직접 참조할 수 있어야 하는 것 같습니까?
이것은 아래의 경우에 맞으며 둘 다 "Manager"를 인쇄합니다.
System.out.println(parser.parseExpression("#root.jobTitle").getValue(context, String.class));
System.out.println(parser.parseExpression("jobTitle").getValue(context, String.class));
그러나 내부 표현 []의 경우 처리가 다릅니다. SpEL에 대한 언어 사양이 없기 때문에 동작을 기반으로 설명할 수 있습니다. 당신이 달릴 때
System.out.println(parser.parseExpression(
"{\"jobTitle\":\"37.5\"}[jobTitle]").getValue(context, String.class));
이것은 실제로 "37.5"를 인쇄합니다( [jobTitle]로 처리됨 [\"jobTitle\"]). 작성자는 Map의 값에 쉽게 접근할 수 있도록 하기로 했으며 #root.jobTitle, 루트 객체를 참조할 때 with를 지정해야 하는 단점이 있습니다.
반응형
'프로그래밍 > Back-End' 카테고리의 다른 글
DI 프레임워크를 사용하여 동적으로 빈을 생성하는 방법 (0) | 2022.01.27 |
---|---|
네이티브 이미지에 대한 Spring Boot 빌드 이미지 실패 (0) | 2022.01.20 |
Spring Boot에서 응답 본문이 무효인 경우 GET 요청에 RestTemplate 클라이언트를 사용하는 방법은 무엇입니까? (0) | 2022.01.20 |
resize2fs 에러 : Operation not permitted While trying to add group centos (0) | 2022.01.20 |
Failed to introspect Class [org.springframework.boot.autoconfigure.orm.jpa..HibernateJpaConfiguration (0) | 2022.01.20 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 파이썬
- ChatGPT
- Linux
- 주식
- 스핀락
- 커널드라이버
- 생각
- go
- CSS
- Java
- JSX
- frida
- 투자
- WinAPI
- react
- Spring
- Windows
- 유튜브
- SWiFT
- Python
- Frontend
- reactjs
- JavaScript
- HTML
- ios
- golang
- 부동산
- Backend
- 예제
- 트렌드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함