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

同时使用多个Spring PropertyPlaceholderConfigurer

宿鹏程
2023-03-14
问题内容

我有两个项目,其中一个(服务)包括第二个(核心)。我已经在以下Core项目中定义了此PropertyPlaceholderConfigurer:

<bean id="propertyConfigurer" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
    <property name="locations">
         <list>
             <value>classpath:appConfig.properties</value>
         </list>
    </property>
</bean>

我想在上层项目中扩展Core占位符,包括appConfig.properties和其他一些。我发现的唯一方法是在上层定义另一个不同的bean(不同的ID),并包括新的bean:

<bean id="servicesPropertyConfigurer" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
    <property name="locations">
          <list>
                <value>classpath:swagger.properties</value>
          </list>
    </property>
</bean>

但是它产生的结果是找不到appConfig.properties,我想它只是同时使用了其中一个PropertyPlaceholderConfigurer?是否需要在上层propertyConfigurer中指定所有资源?

<bean id="servicesPropertyConfigurer" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
    <property name="locations">
          <list>
                <value>classpath:swagger.properties</value>
                <value>classpath:appConfig.properties</value>
          </list>
    </property>
</bean>

是否可以扩展Core bean或同时使用两者?


问题答案:

您可以同时使用多个 你必须有不同的名称/ IDS为每一个其他将覆盖其他。接下来,您需要为每个使用不同的占位符($
{…})或将其配置为忽略未解析的占位符。

我强烈建议<context:property-placeholder .. />您不要使用类定义,而是使用命名空间(这可以节省一些xml。(它将生成具有唯一名称的bean,因此您可以同时具有多个名称,请确保将ignore- unresolvable属性设置为)true

作为最后的选择,您可以实现a
BeanDefinitionRegistryPostProcessor,它检测所有PropertyPlaceHolderConfigurer实例,将它们合并到一个实例中,然后将所有位置/资源移动到合并的实例中。这样,您就不必担心多个不同的占位符或无法解析的属性。



 类似资料:
  • 问题内容: 在这里,我需要同时执行,并在同一时间。 当我尝试在其上放置一个并行块时,由于在官方站点中这样提到,因此它引发了错误。 } 问题答案: 您不必将每个调用都放在阶段内的并行作业中,因此可以这样进行:

  • 最近,我正在从事一个项目,其中我有2个同时进行2个异步调用。由于我与Quarkus合作,我最终尝试利用叛变和垂直。x库。然而,我无法让我的代码与Unis一起工作。在下面的代码中,我可以想象两个Uni都将被调用,返回速度最快的Uni将被返回。然而,当组合uni时,似乎只返回列表中的第一个uni,即使第一个uni需要更长的时间。 由于uniFast应该首先完成,所以下面的代码应该在打印时打印出来。如何

  • 我目前正在开发一个不和谐机器人,可以静音/聋哑语音聊天的一部分。它的工作,但我遇到了一些问题。当机器人试图让一大群玩家静音时,他们一个接一个地静音。当其中一个玩家的网络连接变慢时,他们下面的所有玩家都必须等到该玩家静音。这意味着一个静音/非静音可能需要5个玩家长达10秒的时间,这对于我使用它的目的来说太长了。 静音/隔音过程的简化代码: (其中“玩家”是一个包含GuildMember对象的数组)

  • 有可能吗?如果是,使用消息并将消息发送到数据库的简单方式可能不安全。

  • 问题内容: 我需要使用单个任务队列和单个结果队列来启动许多工作程序。每个工人都应该以不同的goroutine开始。我需要等到所有工作人员都将完成并且任务队列将为空后再退出程序。我已经准备了goroutine同步的小例子。主要思想是我们将排队的任务计数,并等待所有工人完成工作。但是当前的实现有时会遗漏值。为什么会发生这种情况以及如何解决问题?示例代码: 问题答案: 使用sync.WaitGroup等

  • 问题内容: 在我的React应用程序中,我有一个参数数组(例如一些ID),这些参数应该用作ajax调用队列的参数。问题是该数组可能包含1000多个项目,如果我仅使用forEach循环递归地进行ajax调用,则浏览器页面最终会在每个请求得到解决之前停止响应。 是否有一种技术/库可以允许以异步方式一次发送5个请求,例如,一次异步发送ajax请求,并且仅在这些请求完成后才继续下一个5? 后续问题: 反应