Tôi trước đây đã sử dụng, hiện không được chấp nhận, lớp org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer
để tải tệp thuộc tính từ hệ thống tệp của máy chủ. Tôi đã đậu sau definied:Tomcat Context-Params bị bỏ qua trong Spring webapp khi sử dụng PropertyPlaceholder
<bean class="org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer">
<property name="locations" value="${config}"/>
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
<property name="ignoreUnresolvablePlaceholders" value="true"/>
<property name="searchContextAttributes" value="true"/>
<property name="contextOverride" value="false"/>
<property name="ignoreResourceNotFound" value="true"/>
<property name="searchSystemEnvironment" value="false"/>
</bean>
Các config
là một cuộc tranh cãi đó là thông qua khi khởi động Tomcat, tức là
-Dconfig=/path/to/application.properties
Đối với webapp Tôi cũng có một tập tin ngữ cảnh:
<Context docBase="/path/to/application.war">
<Parameter name="host" value="localhost" override="false"/>
<Parameter name="port" value="8080" override="false"/>
</Context>
Nếu tệp .properties
, được chỉ định bởi đối số -Dconfig
, chứa thuộc tính mà một số tham chiếu bean khác thì giá trị từ .properties
tệp được sử dụng, nếu không giá trị từ tệp xml ngữ cảnh được sử dụng.
Điều này cho phép tôi có một tập hợp các thuộc tính mặc định được triển khai với WAR và nếu được yêu cầu, tôi có thể chỉ định tệp .properties
để ghi đè các giá trị cụ thể.
Bây giờ, tôi đang cập nhật để sử dụng các tính năng trừu tượng hóa thuộc tính mới trong Spring 3.1 nhưng tôi dường như không thể tìm ra cách tiếp cận tương đương với điều này là gì?
Tôi có tập tin bối cảnh tương tự và chiến tranh được triển khai trong cùng một cách, và bây giờ tôi có những điều sau đây trong ứng dụng:
<context:property-placeholder
location="${config}"
system-properties-mode="OVERRIDE"
ignore-resource-not-found="true"
ignore-unresolvable="true"/>
này tìm và sử dụng các tính chất từ các thuộc tính tập tin, nhưng nó không sử dụng các giá trị từ tệp XML ngữ cảnh.
Làm cách nào để ứng dụng của tôi sử dụng thông số ngữ cảnh khi sử dụng trình giữ chỗ thuộc tính mới này?
Cảm ơn.
Tôi không nghĩ rằng bạn đã hiểu đầy đủ bài đăng gốc của mình. Tôi có phần giữ chỗ đã được giải quyết bằng cách sử dụng tệp thuộc tính. Câu hỏi sẽ hỏi về việc sử dụng Tham số ngữ cảnh. – C0deAttack
Bạn đã theo liên kết từ câu 1 chưa? Phần còn lại của câu trả lời chỉ là một add-on cho các nhà phát triển khác sử dụng .properties và application.properties. – luksmir
Vấn đề là về Tham số ngữ cảnh - không phải tệp thuộc tính. – C0deAttack