解决springboot利用ConfigurationProperties注解配置数据源无法读取配置信息问题
@ConfigurationProperties是springboot新加入的注解,主要用于配置文件中的指定键值对映射到一个java实体类上。那么它是怎么发挥作用的呢?下面我们将揭开@ConfigurationProperties的魔法。
ConfigurationPropertiesBindingPostProcessor这个bean后置处理器,就是来处理bean属性的绑定的,这个bean后置处理器后文将称之为properties后置处理器。你需要知道以下几件事:
ioc容器context的enviroment.propertySources记录着系统属性、应用属性以及springboot的默认配置文件application.properties中的配置属性等。properties后置处理器就是从其中找到匹配的配置项绑定到bean的属性上去的。
属性绑定是有覆盖性的,操作系统环境变量可以覆盖配置文件application.properties, java系统属性可以覆盖操作系统环境变量。更多的可以参考官网 https://docs.spring.io/spring-boot/docs/2.1.1.RELEASE/reference/htmlsingle/#boot-features-external-config
重点给大家介绍springboot配置数据源无法读取配置信息的问题及解决方案,具体内容如下:
出现的问题:
利用ConfigurationProperties注解配置数据源发现读取的数据库配置信息全部为null。
@Bean(name = "pq") @ConfigurationProperties(prefix = "spring.datasource") public DataSource dataSourcePq() { return DataSourceBuilder.create().build(); }
#配置信息 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource #MySQL配置 driverClassName: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/graduate?useUnicode=true&characterEncoding=UTF-8&useSSL=false username: root password: root
debug过后发现配置文件属性没有读取成功
解决方法:
@Bean(name = "pq") @ConfigurationProperties(prefix = "spring.datasource") public DataSource dataSourcePq() { //return DataSourceBuilder.create().build(); return new DruidDataSource(); }
出现问题原因:
暂时还不清楚,第一次使用这样的方式配置数据源,可能有些细节没有注意到。
以上就是解决springboot利用ConfigurationProperties注解配置数据源无法读取配置信息问题的详细内容,更多关于springboot配置数据源无法读取配置信息的资料请关注脚本之家其它相关文章!
- SpringBoot yaml语法与数据读取操作详解
- SpringBoot读取自定义配置文件方式(properties,yaml)
- 解决SpringBoot application.yaml文件配置schema 无法执行sql问题
- SpringBoot+thymeleaf+Echarts+Mysql 实现数据可视化读取的示例
- SpringBoot如何读取配置文件中的数据到map和list
- springboot使用AOP+反射实现Excel数据的读取
- SpringBoot读取properties或者application.yml配置文件中的数据
- SPRINGBOOT读取PROPERTIES配置文件数据过程详解
- springboot openfeign从JSON文件读取数据问题
- springboot读取application.yaml文件数据的方法
相关文章
spring mvc @PathVariable绑定URI模板变量值方式
这篇文章主要介绍了spring mvc @PathVariable绑定URI模板变量值方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-11-11SpringBoot整合sharding-jdbc实现自定义分库分表的实践
本文主要介绍了SpringBoot整合sharding-jdbc实现自定义分库分表的实践,将通过自定义算法来实现定制化的分库分表来扩展相应业务,感兴趣的可以了解一下2021-11-11Java下载远程服务器文件到本地(基于http协议和ssh2协议)
这篇文章主要介绍了Java下载远程服务器文件到本地的方法(基于http协议和ssh2协议),帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下2021-01-01
最新评论