对于数据访问层,无论是SQL还是NOSQL,Spring Boot默认采用整合Spring Data的方式进行统一处理,添加大量自动配置,屏蔽了很多设置。引入各种xxxTemplate,xxxRepository来简化我们对数据访问层的操作。对我们来说只需要进行简单的设置即可。
1.JDBCorg.springframework.boot spring‐boot‐starter‐jdbcmysql mysql‐connector‐javaruntime
application.yml:访问数据库只需要如下简单的配置
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://192.168.xx.xx:3306/jdbc
driver-class-name: com.mysql.jdbc.Driver
测试类:
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootApplicationTests {
@Autowired
DataSource dataSource;
@Test
public void contextLoads() throws SQLException {
System.out.println(dataSource.getClass());
//org.apache.tomcat.jdbc.pool.DataSource
Connection connection = dataSource.getConnection();
System.out.println(connection);
//ProxyConnection[PooledConnection[com.mysql.jdbc.JDBC4Connection@5c448433]]
connection.close();
}
}
效果:
默认是用org.apache.tomcat.jdbc.pool.DataSource作为数据源;
数据源的相关配置都在DataSourceProperties里面;
自动配置原理:
spring-boot-autoconfigure-x.x.xx.RELEASE.jar
1、jar包下面:org.springframework.boot.autoconfigure.jdbc下的 DataSourceConfiguration.java,根据配置创建数据源,默认使用Tomcat连接池;可以使用 spring.datasource.type指定自定义的数据源类型;
2、SpringBoot默认可以支持:
org.apache.tomcat.jdbc.pool.DataSource、HikariDataSource、dbcp.BasicDataSource、dbcp2.BasicDataSource
3、自定义数据源类型
@ConditionalOnMissingBean(DataSource.class)
@ConditionalOnProperty(name = "spring.datasource.type")
static class Generic {
@Bean
public DataSource dataSource(DataSourceProperties properties) {
return properties.initializeDataSourceBuilder().build();
}
}



