使用@PropertySource批注时,无法解析@Value如何配置PropertySourcesPlaceholderConfigurer?...

如何解决使用@PropertySource批注时,无法解析@Value如何配置PropertySourcesPlaceholderConfigurer??
如果使用@PropertySource,则必须使用以下方法检索属性:

@Autowired
Environment env;
// ...
String subject = env.getProperty("mail.subject");
如果要使用@Value(“ $ {mail.subject}”)进行检索,则必须通过xml注册prop占位符。

@cwash所说;

@Configuration
@PropertySource("classpath:/test-config.properties")
public class TestConfig {
@Value("${name}")
public String name;
//You need this
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
}
解决方法
我有以下配置类:

@Configuration
@PropertySource(name = "props",value = "classpath:/app-config.properties")
@ComponentScan("service")
public class AppConfig {
and I have service with property:

@Component
public class SomeService {
@Value("#{props['some.property']}") private String someProperty;
我想使用以下命令测试AppConfig配置类时收到错误消息

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'someService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private java.lang.String service.SomeService.someProperty; nested exception is org.springframework.beans.factory.BeanExpressionException: Expression parsing failed; nested exception is org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 0): Field or property 'props' cannot be found on object of type 'org.springframework.beans.factory.config.BeanExpressionContext'
该问题记录在SPR-8539中

但无论如何,我无法弄清楚如何配置PropertySourcesPlaceholderConfigurer 使其正常工作。

编辑1
这种方法适用于xml配置

<util:properties id="props" location="classpath:/app-config.properties" />
但我想使用Java进行配置。
声明:地推任务网所有作品(图片、文字)均由用户自行上传分享,仅供网友学习交流。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dituirenwu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值