您现在的位置是:主页 > Web前端技术 > Web前端技术

Springboot中数据访问如何配置开发技术

IDCBT2021-12-31服务器技术人已围观

简介这篇文章给大家分享的是有关Springboot中数据访问如何配置的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 自定义数据源配置 @Bean@ConfigurationPropertie

这篇文章给大家分享的是有关Springboot中数据访问如何配置的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

自定义数据源配置
@Bean 
@ConfigurationProperties(prefix="app.datasource") 
public DataSource dataSource() { 
  return new FancyDataSource(); 
}

配置文件

app: 
  datasource: 
    url: "jdbc:h3:mem:mydb" 
    username: "sa" 
    password: "123123" 
    pool-size: 30

FancyDataSource类具有相应的url,username,pool-size属性。

Spring Boot还提供了一个名为DataSourceBuilder的实用工具生成器类,可用于创建一个标准数据源(如果它位于类路径上)。构建器可以根据类路径上的可用内容检测要使用的类。它还根据JDBCURL自动检测驱动程序。

@Bean 
@ConfigurationProperties("app.datasource") 
public DataSource dataSource() { 
  return DataSourceBuilder.create().build(); 
}

然而,有一个陷阱。因为连接池的实际类型没有提供,所以在自定义数据源的元数据中没有生成任何键,并且IDE中没有可用的完成(因为数据源接口不公开任何属性)。此外,如果类路径上碰巧有Hikari,则此基本设置不起作用,因为Hikari没有url属性(但有jdbcUrl属性)。在这种情况下,你必须按如下方式重写配置:

app: 
  datasource: 
    jdbc-url: "jdbc:mysql://localhost/test" 
    username: "dbuser" 
    password: "dbpass" 
    pool-size: 30

可以强制指定数据源类型

@Bean 
@ConfigurationProperties("app.datasource") 
public HikariDataSource dataSource() { 
  return DataSourceBuilder.create().type(HikariDataSource.class).build(); 
}
多数据源配置

如果需要配置多个数据源,可以应用上一节中描述的相同技巧。但是,你必须将其中一个数据源实例标记为@Primary,因为将来的各种自动配置都希望能够按类型获得一个。

如果您创建自己的数据源,自动配置将退出。在以下示例中,我们提供了与主数据源上的自动配置完全相同的功能集:

@Bean 
@Primary 
@ConfigurationProperties("app.datasource.first") 
public DataSourceProperties firstDataSourceProperties() { 
  return new DataSourceProperties(); 
} 
 
@Bean 
@Primary 
@ConfigurationProperties("app.datasource.first.configuration") 
public HikariDataSource firstDataSource() { 
  return firstDataSourceProperties().initializeDataSourceBuilder().type(HikariDataSource.class).build(); 
} 
 
@Bean 
@ConfigurationProperties("app.datasource.second") 
public BasicDataSource secondDataSource() { 
  return DataSourceBuilder.create().type(BasicDataSource.class).build(); 
}

标签:

很赞哦! ()

本栏推荐