我创建了一个FactoryBean<Properties>
public final class SystemProperteisFactoryBean implements FactoryBean<Properties> {
private static final String QUERY = "select * from tb_system_properties";
private final NamedParameterJdbcTemplate jdbcTemplate;
public SystemProperteisFactoryBean (DataSource datasource) {
this.jdbcTemplate = new NamedParameterJdbcTemplate (datasource);
}
@Override
public Properties getObject() {
Properties result = new Properties();
jdbcTemplate.query(QUERY,
(ResultSet rs) -> result.setProperty(rs.getString(1), rs.getString(2));
return result;
}
@Override
public Class<?> getObjectType() {
return Properties.class;
}
@Override
public boolean isSingletone() {
return true;
}
}
这个类使用Spring和XML配置工作正常,我使用JNDI名称获取DataSource,然后创建适当的属性,然后通过XML标记使用propertiesPlaceHoldeConfigurer。
现在我想在Spring Boot和Java Config中使用相同的东西。
当我将ProprtySourcesPlaceHolderConfigurer定义为bean(在@Configuration
类中的静态方法中)时,Spring会尝试在数据源之前创建此bean。
有没有办法在PRopertySourcesPlaceHolderConfigurer之前创建数据源?
答案 0 :(得分:0)
基本上你需要以这种方式将依赖项作为'a'
方法参数:
'b'