使用@Value获取属性

2020-09-10 14:59发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在汇总一个单元测试,并尝试获...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在汇总一个单元测试,并尝试获取Spring上下文的一小部分,以确认DI连线对注释驱动的配置都很好,并进行一些测试。

由于某种原因,我无法使 @Value(" $ {my.property}")注入正常工作。 下面的表达式有效(结果为" defaultValue")。 我尝试将单元测试中的 @PropertySource 设置为以不同方式无济于事。

 类香蕉{
      public Banana(@Value(" $ {my.property:defaultValue}")final String myProperty){
       //做东西
      }
  }


  

有人以这种方式来获得自己的财产有运气吗?

3条回答
callcenter油条
2020-09-10 15:46

感谢您的答复-事实证明,当您使用" $ {foo}"占位符时,这在某种程度上是Spring框架问题。 您必须具有 PropertySourcesPlaceholderConfigurer bean,否则尽管在类路径上具有这些属性,它也不会为您解析要通过注入使用的表达式。 下面的关键项是将 WSClientIntegrationTest.Config.class 添加到ContextConfiguration和测试类内部的简单bean。 自然,最好将它放在测试上下文配置的更高级别的基类中。

如果这对以后的人有帮助,通常的想法是:

  @RunWith(SpringRunner.class)
  @ContextConfiguration(
          类= {WSClientIntegrationTest.Config.class,WSClient.class,WSMarshaller.class,WSMessageSender.class}
  )
  @TestPropertySource
  公共类WSClientIntegrationTest {
 
      @组态
      静态类Config {
          @豆
          公共静态PropertySourcesPlaceholderConfigurer propertiesResolver(){
              返回新的PropertySourcesPlaceholderConfigurer();
          }
      }//等等
  }
  

一周热门 更多>