在我的Java主,我有以下幾點:加載使用Spring動態特性在Java中
ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
SpringConfig.java看起來是這樣的:
@Configuration
@EnableAspectJAutoProxy
@EnableTransactionManagement
@ComponentScan(basePackages = {"...", "..."})
@PropertySource("classpath:prod.properties")
public class SpringConfig {
@Autowired
private Environment env;
@Autowired
private DataSource dataSource;
@Bean
public static PropertySourcesPlaceholderConfigurer propertiesResolver() {
return new PropertySourcesPlaceholderConfigurer();
}
@Configuration
static class DatabaseConfig {
@Value("${jdbc.url}")
private String jdbcUrl;
@Value("${jdbc.username}")
private String jdbcUsername;
@Value("${jdbc.password}")
private String jdbcPassword;
@Value("${jdbc.driverClassName}")
private String jdbcDriverClassName;
@Bean
public DataSource dataSource() {
DriverManagerDataSource source = new DriverManagerDataSource(jdbcUrl,
jdbcUsername, jdbcPassword);
source.setDriverClassName(jdbcDriverClassName);
return source;
}
}
的問題是我希望部署最終JAR的人員指定所有數據庫屬性,因此我不想將該屬性文件保留在類路徑中。
在運行時加載某些東西並將其注入Spring上下文之前,我有哪些選擇可以開始解決所有這些Spring EL @Value字段?
謝謝!
我不明白你的用例。你能澄清一下嗎?問題是我會希望部署最終JAR的人員指定所有的數據庫屬性,所以我不想將該屬性文件留在classpath上。 –