2011-10-25 33 views
7

Xuân EL hỗ trợ một số biến được xác định trướcDanh sách các biến mùa xuân EL?

  • {#systemProperties. ... }
  • {#systemEnvironment. ... }
  • {#request. ...}
  • {#session. ...}

Đầu tiên hai lần được diễn tả trong các Spring Reference: chapter 6. Spring Expression Language (SpEL). Hai mục khác không được đề cập trong Tham chiếu mùa xuân (hoặc tôi không tìm thấy chúng.) (Tôi đã tìm thấy chúng trong số slides này, cũng như cách sử dụng nó trong spring socialquestion) này.

Vì vậy, câu hỏi của tôi là: có danh sách đầy đủ hoặc ít hơn các biến mùa xuân-el được xác định trước không?

Tôi đoán rằng một số biến được xác định trước này không được xác định bởi chính lõi lò xo, mà bằng cách "kích hoạt" một số mô-đun như spring-mvc. Vì vậy, tôi quan tâm đến các biến số có sẵn trong một hoặc ít hơn phổ biến mùa xuân + jpa + mvc + ứng dụng bảo mật.

Trả lời

5

Tôi không thể trả lời câu hỏi gốc của bạn nhưng tôi có thể cung cấp cho bạn gợi ý.

Có một số bean được xác định trước được đăng ký khi khởi động ngữ cảnh ứng dụng của bạn nhưng phụ thuộc vào loại ngữ cảnh bạn đang sử dụng.

Thông thường, systemPropertiessystemEnvironment có mặt. Đang tải Spring trong ứng dụng web, bạn cũng sẽ nhận được servletContext, contextParameterscontextAttributes. Tôi giả sử, requestsession cũng liên quan đến ngữ cảnh ứng dụng web.

Tôi đã phát hiện ra điều này trong khi gỡ lỗi ứng dụng của tôi sử dụng Spring 3.0.6RELEASE. Một điểm khởi đầu tốt là phương thức SpringBeanELResolver.getValue().

7

Tôi cũng nhận thấy rằng environment giải quyết phiên bản hiện tại org.springframework.core.env.Environment. Tôi không chắc chắn đây là một tính năng ghi chép, nhưng tôi đã tìm kiếm một cách súc tích để làm những điều sau đây trong lớp @Configuration tôi:

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

Mà sau đó cho phép tôi để tắt giá trị này trong defintions đậu hơn nữa.

Tôi đã nộp JIRA sau đây để giải quyết vấn đề này:

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

Các vấn đề liên quan