我需要在application.properties中指定数据源列表(无固定长度),如下所示。
#data source 1
tools.datasource[0].url=jdbc:sqlserver://databaseurlOne;databaseName=dbname
tools.datasource[0].username=databaseUser1
tools.datasource[0].password=databasePassword1
tools.datasource[0].driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
#data source 2
tools.datasource[0].url=jdbc:sqlserver://databaseurlTwo;databaseName=dbname
tools.datasource[0].username=databaseUser2
tools.datasource[0].password=databasePassword2
tools.datasource[0].driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
我正在尝试在代码中读取如下所示的数据源配置 -
@Configuration
@ConfigurationProperties(prefix = "tools.datasource")
public class MultipleDataSource {
private List<DataSource> datasources;
public List<DataSource> getDatasources() {
return datasources;
}
}
然后我在我的SpringBatch配置类中自动装配它们,如下所示,但当我尝试访问我的数据源列表时它会抛出NPE -
@Configuration
@EnableBatchProcessing
public class BatchConfiguration {
@Autowired
public JobBuilderFactory jobBuilderFactory;
@Autowired
public StepBuilderFactory stepBuilderFactory;
@Autowired
public MultipleDataSource dataSourceConfig;
public ItemReader<Project> reader(DataSource datasource) {
dataSourceConfig.getDatasources().forEach(System.out::println);
JdbcCursorItemReader<Item> reader = new JdbcCursorItemReader<Item>();
......
return reader;
}
}
我最近开始使用Spring。任何指向正确的指针都会有所帮助。感谢。