Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以配置一个PropertySourcesPlaceholderConfigurer,该Configurer从数据库中读取数据,该数据库进一步依赖于属性文件?_Java_Spring_Spring Boot - Fatal编程技术网

Java 是否可以配置一个PropertySourcesPlaceholderConfigurer,该Configurer从数据库中读取数据,该数据库进一步依赖于属性文件?

Java 是否可以配置一个PropertySourcesPlaceholderConfigurer,该Configurer从数据库中读取数据,该数据库进一步依赖于属性文件?,java,spring,spring-boot,Java,Spring,Spring Boot,我有一个用例,其中我有一个定制的PropertySourcesPlaceholderConfigurer,它从数据库中读取属性,并且依赖于DataSourceBean 早些时候,DataSourceBean仅使用.java文件中的凭据创建。所以一切都很顺利 现在,我们想从.properties/.yml文件中选择那些基于概要文件的凭据 但是,现在它就像一个循环,即Spring属性环境需要Datasource,Datasource需要.properties 有人面对过这个问题吗?有什么解决方案吗?

我有一个用例,其中我有一个定制的PropertySourcesPlaceholderConfigurer,它从数据库中读取属性,并且依赖于DataSourceBean

早些时候,DataSourceBean仅使用.java文件中的凭据创建。所以一切都很顺利

现在,我们想从.properties/.yml文件中选择那些基于概要文件的凭据

但是,现在它就像一个循环,即Spring属性环境需要Datasource,Datasource需要.properties


有人面对过这个问题吗?有什么解决方案吗?

您可以通过以下方式重新构造应用程序:

  • 根据您定义的配置文件(例如dev、int和prod),从属性文件读取数据库凭据
  • 使用这些属性创建
    数据源
    以访问数据库
  • 现在,有了对数据库的访问权,您可以从数据库中读取所需内容,并将其放入
    singletonspringbean
    中,然后自动连接到所需位置

  • 谢谢,妈妈。我懂了。。您的建议是手动读取数据源属性(文件IO),而不是从Spring环境中使用Spring注入。是的,它可以解决这个问题。但是,如果Spring中有一些东西可能会有所帮助,那么数据源属性将来自Spring环境,如果它们不在.properties文件中并且可能位于其他位置(例如OS环境变量),Spring环境也会提供这些属性。谢谢@Jatinder Jindal,不,您不会手动读取连接属性。但是,spring将在启动应用程序时从您的属性文件中读取它们。现在,对于数据库上的属性,您需要在创建DataSourceBean之后读取它们。(将它们放在单独的可注射bean中)。