欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

解决springboot利用ConfigurationProperties注解配置数据源无法读取配置信息问题

时间:2022-06-09 09:21:01|栏目:JAVA代码|点击:

@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();
    }

出现问题原因:

暂时还不清楚,第一次使用这样的方式配置数据源,可能有些细节没有注意到。

上一篇:Spring事务的七种传播行为

栏    目:JAVA代码

下一篇:Java日常练习题,每天进步一点点(31)

本文标题:解决springboot利用ConfigurationProperties注解配置数据源无法读取配置信息问题

本文地址:http://www.codeinn.net/misctech/204262.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有