纷杂的Spring-boot-starter: 3 数据访问与spring-boot-starter-jdbc

大部分的Java应用都需要访问数据库,尤其是服务层,所以,SpringBoot会为我们自动配置相应的数据访问设施

若想SpringBoot为我们自动配置数据访问的基础设施,那么,我们需要直接或间接地依赖spring-jdbc,一旦spring-jdbc位于我们springBoot应用的classpath,即会触发数据访问相关自动配置行为,最简单的做法就是把spring-boot-starter-jdbc加为应用的依赖

默认情况下,如果我们没有配置任何DataSource,那么,SpringBoot会为我们自动配置一个基于嵌入式数据库的DataSource,这种自动配置行为其实很适合于测试场景,但对实际的开发帮助不大,基本上我们会自己配置一个DataSource实例,或者通过自动配置模块提供的配置参数对DataSource实例进行自定义的配置

假设我们的SpringBoot应用只依赖一个数据库,那么,使用DataSource自动配置模块提供的配置参数是最方便的:

spring.datasource.url= jdbc: mysql://{
    database host}: 3306/{
    databaseName} 
spring.datasource.username={
    database username} 
spring.datasource.password={
    database password} 

当然,自己配置一个DataSource也是可以的,SpringBoot也会智能地选择我们自己配置的这个DataSource实例(只不过必要性不大)

除了DatraSource会自动配置,SpringBoot还会自动配置相应的JdbcTemplate、DataSourceTransactionManager等关联“设施”,可谓服务周到,我们只要在使用的地方注入就可以了:

class SomeDao {
    
	@Autowired 
	JdbcTemplate jdbcTemplate; 

	public < T> List< T> queryForList( String sql){
   
	 	// ... 
	} 
	// ... 
} 

不过,spring-boot-starter-jdbc以及与其相关的自动配置也不总是带来便利,在某些场景下,我们可能会在一个应用中需要依赖和访问多个数据库,这个时候就会出问题了。

假设我们在ApplicationContext中设置了多个DataSource实例指向多个数据库:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值