注解@ConfigurationProperties(prefix = “xxx“)拿不到yml中的值

文章讲述了在SpringBoot应用中,使用@ConfigurationProperties注解时遇到的问题,包括缺少构造函数、未提供get和set方法、下划线命名的属性以及静态set方法的影响。作者提供了示例代码和解决方案,帮助读者理解如何正确配置和注入自定义属性。
摘要由CSDN通过智能技术生成

查阅的可能原因:

1:认为缺少构造函数

解决springboot不能解析@ConfigurationProperties(prefix = “xxx“)_无法解析符号 'configuration-CSDN博客

2:没有给属性值加添get和set方法
 

@ConfigurationProperties给自定义的属性赋值不成功的原因_自定义注解给属性赋值不起作用-CSDN博客 

3:定义的属性值带有下划线符号'_'

@ConfigurationProperties(prefix = "xxx")的值取出为空_configurationproperties 取不到值-CSDN博客 

4:set方法是静态的

@ConfigurationProperties 获取不到配置文件属性值_configurationproperties读取不到属性-CSDN博客 

很不巧 我不是上面的坑。。。

配置类:

@Component
@ConfigurationProperties(prefix = "alipay")
public class Alipay {

    private String appId;

    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    @Override
    public String toString() {
        return "Alipay{" +
                "appId='" + appId + '\'' +
                '}';
    }
}

yml配置文件:

alipay:
  appId: 123

错误点:

@RestController
public class HelloController {

    @Autowired
    private Alipay alipay; //正确用法  注入一个配置类


    @RequestMapping("/hello")
    public String hello(){

        Alipay alipay1 = new Alipay();
        System.out.println("注入的"+alipay.getAppId());
        System.out.println("直接new的"+alipay1.getAppId());

        return "hello springboot";
    }

}

访问127.0.0.1:8080/hello 的结果:

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值