2012-05-16 38 views
6

Tôi có một tài sản (String, rõ ràng) được biểu thị bằng phút mà tôi muốn chuyển đổi thành int trước khi tôi thực hiện một số phép tính và chèn nó vào bean Spring của tôi. Ngay bây giờ tôi có biểu hiện SpEL này:Ngôn ngữ biểu thức mùa xuân (Spel): phân tích chuỗi thành int

#{T(java.lang.Integer).parseInt(myProperties['MIN_TIME']) * 60 * 1000} 

nơi myProperties là một java.util.Properties đậu đơn giản.

Không phải là tôi đặc biệt khó chịu bởi biểu thức này, nhưng tuy nhiên: Spel có một cách dễ dàng hơn, được tích hợp sẵn để phân tích chuỗi thành các giá trị số không?

Cảm ơn!

Trả lời

9

Không giống như vậy, ví dụ: xem làm thế nào các nhà phát triển tạo ra chúng ở đây: https://jira.springsource.org/browse/SPR-8716

Một phiên bản ngắn hơn một chút có thể là

#{new Integer(myProperties['MIN_TIME']) * 60 * 1000} 
+0

Việc này sẽ thực hiện. Cảm ơn! –

+0

Có thể làm điều gì đó như thế này cho chú thích không? ** @ Size ((min = "# {new Integer (applicationProperties [size.min])}") kích thước int cá nhân; ** – luksmir

+0

@luksmir Tôi không biết. Tốt nhất nên đặt câu hỏi mới – artbristol

0

Một cách khác để làm điều này là sử dụng không gian tên util để xác định một bean tài sản, ... xmlns : util = "http://www.springframework.org/schema/util" ... http://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-3.1.xsd ...

<util:properties id="apiProperties" 
    location="classpath:/api.properties" /> 
.210

sau đó sử dụng các cú pháp thay thế cho các thuộc tính bean

@Value("#{apiProperties['api.orders.pingFrequency']}") 
private Integer pingFrequency; 

Mùa xuân util thuộc tính bean được tạo ra bởi bối cảnh sẽ thực hiện phân tích và chuyển đổi trước khi gán giá trị.

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