当前位置: 首页 > 面试题库 >

如何从多个文件收集spring属性以在单个bean上使用

司寇星海
2023-03-14
问题内容

我还没有把头缠在Spring上,所以如果这个问题没有道理,请纠正我…

我有一个PropertyPlaceholderConfigurer

<bean id="rdbmPropertiesPlacholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" lazy-init="false">
    <property name="location" value="classpath:/properties/rdbm.properties" />
</bean>

我猜我有注入的豆吗?

<bean id="PortalDb" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="${hibernate.connection.driver_class}" />
    <property name="url" value="${hibernate.connection.url}" />
    <property name="username" value="${hibernate.connection.username}" />
    <property name="password" value="${hibernate.connection.password}" />
    ...

我想要的是第二个占位符,它使用用户名/密码指向不同的属性文件,这样我就可以将属性拆分为两个不同的文件。然后,数据库连接信息可以与db用户名/密码分开,并且我可以源代码控制一个而不是另一个。

我试过基本上复制具有不同ID和文件的rdbmPropertiesPlaceholder并尝试访问属性,但是它不起作用。

此代码来自uPortal开源Web门户项目。


问题答案:

使用此表示法可以指定多个文件:

 <bean id="rdbmPropertiesPlacholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" lazy-init="false">
     <property name="locations">
       <list>
           <value>classpath:/properties/rdbm.properties</value>
           <value>classpath:/properties/passwords.properties</value>
       </list>
    </property>
 </bean>

propertyplaceholderconfigurerer只是将所有这些合并,看起来只有一个,因此您的bean定义不知道这些属性来自何处。



 类似资料:
  • 由于我不想多次使用流来单独收集每个属性,也不想使用来收集每个属性,是否有任何方法可以用单个流来获得上述属性。

  • 我们使用的是Spring boot。我们有三个环境、、。我们当前的配置结构 开发 同样,对于每个环境,我们都有一个yml和属性文件。经过一年的开发,现在配置文件的单个yml文件变成了一个大型单片配置文件。 对于下面这样的配置文件,可以有多个配置文件吗?

  • 我浏览了以下链接:如何通过application.properties和其他相关链接传递一个map 多次,但仍然不起作用。 代码:

  • 在spring initialize之后,我希望将第二个bean的属性值合并到第一个bean中。请告知spring是否提供了动态注入值的类。

  • 我使用.property文件在特定路径中创建日志文件,但我使用它创建单个文件。以下是我的属性文件代码: 上面的代码是我的xyz.properties文件,我想使用这个配置文件创建多个日志。我的属性配置文件创建多个文件,但不将不同的不同日志放在日志文件中。我使用下面的代码从Java调用它: log放入两个日志文件。 我参考以下链接: log4j2:为多个日志动态创建日志文件 Log4j2的Routi