Tôi đang sử dụng Spring 3.2 trong một ứng dụng web và tôi muốn có tệp .properties
trong đường dẫn lớp có chứa các giá trị mặc định. Người dùng sẽ có thể sử dụng JNDI để xác định vị trí nơi khác .properties
được lưu trữ để ghi đè các giá trị mặc định.Vị trí @PropertySource tùy chọn
Tác phẩm sau đây miễn là người dùng đã đặt configLocation
làm thuộc tính JNDI.
@Configuration
@PropertySource({ "classpath:default.properties", "file:${java:comp/env/configLocation}/override.properties" })
public class AppConfig
{
}
Tuy nhiên, phần ghi đè bên ngoài phải là tùy chọn và do đó thuộc tính JNDI.
Hiện nay tôi nhận được một ngoại lệ (java.io.FileNotFoundException: comp\env\configLocation\app.properties (The system cannot find the path specified)
khi tài sản JNDI là mất tích.
Làm thế nào tôi có thể xác định tùy chọn .properties
mà chỉ được sử dụng khi tài sản JNDI (configLocation
) được thiết lập? Đây có phải là thậm chí có thể với @PropertySource
hoặc là có một giải pháp
Cảm ơn. Tôi cũng đã giải quyết nó bằng cách sử dụng 'ApplicationContextInitializer'. Có vẻ như đó là cách khả thi duy nhất để làm điều đó. –