多个数据源的

时间:2017-12-21 14:48:26

标签: java spring spring-boot spring-data

我需要在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。任何指向正确的指针都会有所帮助。感谢。

0 个答案:

没有答案