2010-11-22 39 views
5

Vì vậy, tôi có một cái gì đó như thế này trong một file java của tôi:Chuyển đổi tạo đậu Boolean để boolean sử dụng Spring

@Resource(name = "initializationCache") 
Boolean initializationCache; 

Trong một tập tin cấu hình, tôi có điều này:

<bean id="initializationCache" class="java.lang.Boolean"> 
    <constructor-arg value="${initialization.cache}" /> 
</bean> 

Làm thế nào sẽ Tôi đi về làm công việc này bằng cách sử dụng một boolean nguyên thủy?

+0

Về cơ bản, hộp tự động sẽ bỏ chọn hộp thư 'Boolean' thành' boolean'. –

+0

Nhưng tôi muốn có initializationCache mặc định là false nếu vì lý do nào đó cấu hình không được kéo vào bên phải. Như bây giờ, nó sẽ là vô giá trị, tôi tin. – AHungerArtist

+0

Điều gì xảy ra nếu bạn chỉ thay đổi 'Boolean' thành' boolean' trong mã Java của bạn? –

Trả lời

2

Tôi đoán một cách để đi sẽ được tuyên bố một setter của Boolean loại và để cho nó gán giá trị cho một lĩnh vực boolean loại, tức là

boolean initializationCache; 

@Resource(name = "initializationCache") 
public void setInitializationCache(Boolean b) { 
    this.initializationCache = b; 
} 

Tôi chưa thử nghiệm.

+0

Vâng, điều đó có thể hiệu quả, mặc dù tôi muốn làm một kiểm tra không, tôi nghĩ vậy. Tôi thực sự tìm thấy một giải pháp khác nhau cụ thể hơn cho ứng dụng cụ thể của tôi nhưng câu trả lời này có vẻ như là cách tốt nhất cho pre 3.0 Spring. – AHungerArtist

9

Trong mùa xuân 3 bạn có thể làm điều đó mà không đậu trung gian sử dụng @Value:

@Value("${initialization.cache}") 
boolean initializationCache; 
+0

Có cách nào không mà không đi đến mùa xuân 3? – AHungerArtist

+0

@AHungerArtist: Tôi nghĩ là không. – axtavt

+0

Cảm ơn. Tôi upvoted vì đây sẽ là một câu trả lời tốt nếu tôi ở trên 3.0+. – AHungerArtist

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