创建配置类
package com.lenovo.cd.pf.service;
import com.lenovo.cd.mf.common.datasource.DynamicDataSource;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.DependsOn;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.sql.DataSource;
@Service
@DependsOn("DynamicDataSource")
public class DataSourceUnitService {
@Value("${data.data-name}")
private String dataName;
@Resource
private DynamicDataSource dynamicDataSource;
@Bean(name = "clickDataSource")
@Qualifier("clickDataSource")
public DataSource clickDataSource() {
String dsKey = "pf_" + dataName;
DataSource dataSource = dynamicDataSource.getDataSource(dsKey);
return DataSourceBuilder.create().build();
}
@Bean(name="clickJdbcTemplate")
public JdbcTemplate clickJdbcTemplate (
@Qualifier("clickDataSource") DataSource dataSource ) {
return new JdbcTemplate(dataSource);
}
//通过yml文件配置
@Bean(name = "twoDataSource")
@Qualifier("twoDataSource")
@Primary
@ConfigurationProperties(prefix="spring.datasource.two")
public DataSource twoDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name="twoJdbcTemplate")
public JdbcTemplate twoJdbcTemplate(
@Qualifier("twoDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
调用
@Autowired
@Qualifier("clickJdbcTemplate")
private JdbcTemplate jdbcTemplate;
@Autowired
@Qualifier("twoJdbcTemplate")
private JdbcTemplate jdbcTemplate;