https://cloud.tencent.com/developer/article/1194956
1.如何查看当前数据源?
编写单元测试
@RunWith(SpringRunner.class)
@SpringBootTest
public class RobotsApplicationTests {
@Autowired
DataSource dataSource;
@Test
public void test(){
System.out.println(dataSource.getClass());
}
}
查看打印:
class org.apache.tomcat.jdbc.pool.DataSource
分析spring-boot数据源加载源
https://cloud.tencent.com/developer/article/1194956
org.springframework.boot.autoconfigure.jdbc.DataSourceProperties
org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration
/**
* Hikari DataSource configuration.
*/
@Configuration
// 依赖了这个包
@ConditionalOnClass(HikariDataSource.class)
// ioc容器中还没有注入DataSource
@ConditionalOnMissingBean(DataSource.class)
// spring.datasource.type指不指定com.zaxxer.hikari.HikariDataSource都没关系, 只要以上两个条件匹配就行, 就能创建com.zaxxer.hikari.HikariDataSource对象作为数据源
@ConditionalOnProperty(name = "spring.datasource.type",
havingValue = "com.zaxxer.hikari.HikariDataSource", matchIfMissing = true)
static class Hikari {
@Bean
@ConfigurationProperties(prefix = "spring.datasource.hikari")
public HikariDataSource dataSource(DataSourceProperties properties) {
HikariDataSource dataSource = createDataSource(properties,
HikariDataSource.class);
if (StringUtils.hasText(properties.getName())) {
dataSource.setPoolName(properties.getName());
}
return dataSource;
}
}