为什么在Spring中构建数据源需要@ConfigurationProperties?

邓肯·奥利奥

如果@ConfigurationProperties将属性绑定到对象中,则@ConfigurationProperties在构建数据源时有何用途?

application.properties

#Database
database1.datasource.url=jdbc:mysql://localhost/testdb
database1.datasource.username=root
database1.datasource.password=root
database1.datasource.driver-class-name=com.mysql.jdbc.Driver

数据源Bean:

@Bean(name = "datasource1")
@ConfigurationProperties("database1.datasource")
@Primary
public DataSource dataSource(){
    return DataSourceBuilder.create().build();
}

另外,如果数据源属性已经在单独的bean中使用@ConfigurationProperties绑定,我们是否仍需要在“数据源”构建器bean中放置相同的注释?

@Bean
@ConfigurationProperties("database1.datasource")
public DataSourceProps dataSourceProps(){
    return new DataSourceProps();
}

@Bean(name = "datasource1")
// @ConfigurationProperties("database1.datasource") Is this necessary?
@Primary
public DataSource dataSource(){
    return dataSourceProps().initializeDataSourceBuilder().type(HikariDataSource.class).build();
}
修整

不,您不需要放@ConfigurationProperties("database1.datasource")第二个bean。它不会达到任何目的。但是,如果您放置@ConfigurationProperties("database1.datasource.hikari")第二个bean,它将配置您的HikariDataSource。例如,您有一个属性文件,例如

mysql.datasource.url=jdbc:mysql://localhost:3306/test
mysql.datasource.username=root
mysql.datasource.password=password
mysql.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

mysql.datasource.hikari.minimum-idle=3
mysql.datasource.hikari.maximum-pool-size=8

你的配置就像

    @Bean
    @ConfigurationProperties("mysql.datasource")
    public DataSourceProperties mysqlDataSourceProperties() {
        return new DataSourceProperties();
    }

    @Bean
    @ConfigurationProperties("mysql.datasource.hikari")
    public DataSource mysqlDataSource() {
        return mysqlDataSourceProperties().initializeDataSourceBuilder()
                .type(HikariDataSource.class).build();
    }

第一个bean创建一个DataSourceProperties,其数据库URL,用户名和密码随一起提供mysql.datasource.*如果不添加,@ConfigurationProperties("mysql.datasource.hikari")spring将使用默认值配置hikari数据连接池,并且您将无法通过更改属性文件来更改它们。因此两个配置属性服务器有两个不同的用途。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么需要配置数据源的SQL方言?

来自分类Dev

为什么查询中的数据源处理与表单中的数据源处理不同?

来自分类Dev

为什么需要两次声明数据源/委托

来自分类Dev

Spring ApplicationContext中的数据源hsqldb

来自分类Dev

Spring ApplicationContext中的数据源hsqldb

来自分类Dev

为什么使用Spring Boot在Tomcat 7取消部署时关闭数据源

来自分类Dev

Android Loaders:何时以及为什么数据源中的数据内容会更改?

来自分类Dev

使用ConfigurationProperties注释的Spring Boot数据源,但未加载属性

来自分类Dev

为什么在Lucee中找不到我的数据源?

来自分类Dev

为什么我的可穿戴设备未在Google Fit API中列为数据源?

来自分类Dev

为什么在更新数据源时会自动选择我的 DataGridView 中的一行?

来自分类Dev

Cloud Foundry数据源超时Oracle JDBC为什么?

来自分类Dev

Spring Boot中的TransactionManager和数据源-Spring Data

来自分类Dev

Spring Boot数据源

来自分类Dev

为什么 Spring @Transactional 成功回滚(SQL 插入)但在(SQL 更新)时失败 - 多个数据源

来自分类Dev

为什么我的数据源没有在 LoopBack 4 中从“内存数据库”转换到 MySQL?

来自分类Dev

有什么办法可以找出数据源中的字段?

来自分类Dev

如何在Spring中配置数据源?

来自分类Dev

在Spring xml中配置休眠数据源

来自分类Dev

在没有XML的Spring中配置数据源URL

来自分类Dev

在 Spring Actuator 中禁用特定数据源的 HealtCheck

来自分类Dev

为什么在显示内部数据源的更改时未反映对外部数据源的更改?

来自分类Dev

Spring:我是否需要为 2 个数据源定义单独的 TransactionManager?

来自分类Dev

为什么在使用本地数据源时IntelliJ无法找到数据库用户凭据?

来自分类Dev

为什么Tableau数据源和图纸显示不同的数据?

来自分类Dev

数据源不支持服务器端数据分页。为什么?

来自分类Dev

什么是核心数据源提取

来自分类Dev

数据源使用什么版本的mysql?

来自分类Dev

基于环境的Spring数据源

Related 相关文章

  1. 1

    为什么需要配置数据源的SQL方言?

  2. 2

    为什么查询中的数据源处理与表单中的数据源处理不同?

  3. 3

    为什么需要两次声明数据源/委托

  4. 4

    Spring ApplicationContext中的数据源hsqldb

  5. 5

    Spring ApplicationContext中的数据源hsqldb

  6. 6

    为什么使用Spring Boot在Tomcat 7取消部署时关闭数据源

  7. 7

    Android Loaders:何时以及为什么数据源中的数据内容会更改?

  8. 8

    使用ConfigurationProperties注释的Spring Boot数据源,但未加载属性

  9. 9

    为什么在Lucee中找不到我的数据源?

  10. 10

    为什么我的可穿戴设备未在Google Fit API中列为数据源?

  11. 11

    为什么在更新数据源时会自动选择我的 DataGridView 中的一行?

  12. 12

    Cloud Foundry数据源超时Oracle JDBC为什么?

  13. 13

    Spring Boot中的TransactionManager和数据源-Spring Data

  14. 14

    Spring Boot数据源

  15. 15

    为什么 Spring @Transactional 成功回滚(SQL 插入)但在(SQL 更新)时失败 - 多个数据源

  16. 16

    为什么我的数据源没有在 LoopBack 4 中从“内存数据库”转换到 MySQL?

  17. 17

    有什么办法可以找出数据源中的字段?

  18. 18

    如何在Spring中配置数据源?

  19. 19

    在Spring xml中配置休眠数据源

  20. 20

    在没有XML的Spring中配置数据源URL

  21. 21

    在 Spring Actuator 中禁用特定数据源的 HealtCheck

  22. 22

    为什么在显示内部数据源的更改时未反映对外部数据源的更改?

  23. 23

    Spring:我是否需要为 2 个数据源定义单独的 TransactionManager?

  24. 24

    为什么在使用本地数据源时IntelliJ无法找到数据库用户凭据?

  25. 25

    为什么Tableau数据源和图纸显示不同的数据?

  26. 26

    数据源不支持服务器端数据分页。为什么?

  27. 27

    什么是核心数据源提取

  28. 28

    数据源使用什么版本的mysql?

  29. 29

    基于环境的Spring数据源

热门标签

归档