Tôi đã có một ứng dụng web mà tôi có vấn đề điển hình là nó yêu cầu các tệp cấu hình khác nhau cho các môi trường khác nhau. Một số cấu hình được đặt trong máy chủ ứng dụng dưới dạng nguồn dữ liệu JNDI, tuy nhiên một số cấu hình vẫn nằm trong các tệp thuộc tính.Cấu hình mùa xuân và Thử nghiệm
Tôi muốn sử dụng tính năng Cấu hình mùa xuân.
Vấn đề của tôi là tôi không chạy thử nghiệm.
context.xml:
<context:property-placeholder
location="classpath:META-INF/spring/config_${spring.profiles.active}.properties"/>
TestCase:
@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners({
TestPreperationExecutionListener.class
})
@Transactional
@ActiveProfiles(profiles = "localtest")
@ContextConfiguration(locations = {
"classpath:context.xml" })
public class TestContext {
@Test
public void testContext(){
}
}
Vấn đề dường như là biến cho tải hồ sơ không được giải quyết:
Caused by: java.io.FileNotFoundException: class path resource [META-INF/spring/config_${spring.profiles.active}.properties] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:157)
at org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(PropertiesLoaderSupport.java:181)
at org.springframework.core.io.support.PropertiesLoaderSupport.mergeProperties(PropertiesLoaderSupport.java:161)
at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.postProcessBeanFactory(PropertySourcesPlaceholderConfigurer.java:138)
... 31 more
hiện nay nên đặt cấu hình bằng chú thích @ActiveProfile
. Vì đó là một testcase, tôi sẽ không thể sử dụng số web.xml
. Nếu có thể, tôi cũng muốn tránh các tùy chọn thời gian chạy. Các thử nghiệm nên chạy như là (nếu có thể).
Làm cách nào để kích hoạt đúng cấu hình? Có thể đặt cấu hình bằng tệp ngữ cảnh không? Tôi có thể khai báo biến trong tệp test-context.xml thực sự đang gọi ngữ cảnh bình thường không?
Cảm ơn. Đã tìm ra một cải tiến được thêm vào bên dưới. –
Cách tiếp cận này không sạch sẽ, bạn sẽ phải chuyển đến tệp thuộc tính nơi thay đổi giá trị hồ sơ hiện hoạt. – codebusta