복붙노트

[SPRING] 스프링 EL 변수 목록

SPRING

스프링 EL 변수 목록

스프링 EL은 사전 정의 된 변수를 지원합니다.

처음 두 번은 Spring Reference : 6 장. Spring Expression Language (SpEL)에 문서화되어있다. 나머지 두 가지는 Spring Reference에서 언급되지 않았다. (또는 나는 그것을 발견하지 못했다.) (나는이 슬라이드에서 봄의 사회에서의 사용법과이 질문을 발견했다.)

그래서 제 질문은 미리 정의 된 spring-el 변수의 목록이 더 많거나 적게 있는지요?

이 미리 정의 된 변수 중 일부는 스프링 코어 자체에서 정의하지는 않지만 spring-mvc와 같은 일부 모듈을 "활성화"하는 것으로 추측됩니다. 따라서 다소 일반적인 스프링 + jpa + mvc + 보안 응용 프로그램에서 사용할 수있는 변수에 관심이 있습니다.

해결법

  1. ==============================

    1.근본 질문에 답할 수는 없지만 힌트를 줄 수는 있습니다.

    근본 질문에 답할 수는 없지만 힌트를 줄 수는 있습니다.

    응용 프로그램 컨텍스트의 시작시 등록 된 일부 미리 정의 된 bean이 있지만 사용중인 컨텍스트 유형에 따라 다릅니다.

    일반적으로 systemProperties 및 systemEnvironment가 있습니다. 웹 애플리케이션 내에서 Spring을로드하면 servletContext, contextParameters 및 contextAttributes도 얻게된다. 나는 요청과 세션이 웹 애플리케이션 컨텍스트와 관련되어 있다고 가정한다.

    Spring 3.0.6RELEASE를 사용하는 어플리케이션 디버깅 중에 이것을 발견했습니다. 좋은 출발점은 SpringBeanELResolver.getValue () 메소드입니다.

  2. ==============================

    2.또한 환경은 현재 org.springframework.core.env.Environment 인스턴스로 해석됩니다. 문서화 된 기능인지는 모르겠지만 @Configuration 클래스에서 다음을 수행하는 간결한 방법을 찾고있었습니다.

    또한 환경은 현재 org.springframework.core.env.Environment 인스턴스로 해석됩니다. 문서화 된 기능인지는 모르겠지만 @Configuration 클래스에서 다음을 수행하는 간결한 방법을 찾고있었습니다.

    @Value("#{environment.acceptsProfiles('test')}")
    private boolean test;
    

    그러면 어떤 Bean 정의에서이 값을 끌 수 있습니다.

    이 문제를 해결하기 위해 다음 JIRA를 제출했습니다 :

    https://jira.springsource.org/browse/SPR-9037

  3. from https://stackoverflow.com/questions/7885847/list-of-spring-el-variables by cc-by-sa and MIT license