Tôi cần phải có cài đặt phát triển và sản xuất cho dự án mùa xuân của mình. Tôi hiểu rằng bạn có thể sử dụng hồ sơ cho mùa xuân nhưng đó không phải là điều mà chúng tôi có thể làm.Tải xuống ứng dụng Spring.properties dựa trên định nghĩa ngữ cảnh servlet tomcat
Điều tôi muốn làm là đặt trên môi trường phát triển tệp tin test-application.properties và trong quá trình sản xuất tệp prod-application.properties. Trong định nghĩa ngữ cảnh tomcat, chúng tôi đã gửi như sau:
<Context>
<context-param>
<param-name>properties_location</param-name>
<param-value>file:C:\Users\Bill\test-application.properties</param-value>
</context-param>
</Context>
Và chúng tôi có thể thay đổi giá trị cho máy chủ sản xuất. Trong cấu hình mùa xuân chúng tôi có một cái gì đó như thế này:
<bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
<property name="locations">
<list>
<value>${properties_location}</value>
</list>
</property>
<property name="ignoreUnresolvablePlaceholders" value="false" />
</bean>
Nhưng chúng tôi tiếp tục nhận được lỗi như:
org.springframework.beans.factory.BeanInitializationException: thể không tải tài sản; lồng nhau ngoại lệ là java.io.FileNotFoundException: Không thể mở ServletContext nguồn [/ $ {properties_location}]
Bất kỳ ý tưởng về làm thế nào để giải quyết?
Tôi đã làm điều tương tự nhưng quên ignoreResourceNotFound. Bây giờ làm việc. Cảm ơn câu trả lời! – checklist
Ngoài ra, vì bạn chỉ ra SYSTEM_PROPERTIES_MODE_OVERRIDE, bất kỳ thuộc tính nào được chỉ định bằng -D trên cuộc gọi java sẽ ghi đè lên những gì được tìm thấy trong tệp thuộc tính, vì vậy 'java -Duser.name = ted ...' sẽ được ưu tiên. Với ignoreResourceNotFound, các tệp thuộc tính cũng có thể được tùy chọn vắng mặt mà không cần ném một ngoại lệ. –