SpringBoot @Value 注解失效 报 NULL 踩坑

问题:

application.yml

spring:
  mail:
    host: smtp.qq.com
    port: 587
    username: [email protected]
    password: xxxxxxxxx
    default-encoding: UTF-8

如下图所示,做发送邮件工具类时,想读取application.yml中的发送人邮箱并注入到userName中,结果一直报 null, 注入失败…
在这里插入图片描述


分析:

使用 @Value() 注意事项:

  • 不能作用于静态变量(static)
    在这里插入图片描述

  • 不能作用于常量(final)
    在这里插入图片描述

  • 不能在非spring容器管理的类中使用(类需要被纳入进spring容器管理,如用 @Service, @RestController, @Component 等)
    在这里插入图片描述

  • 使用这个类时,只能通过依赖注入的方式,用new实例对象的方式是不会自动注入这些配置的
    在这里插入图片描述


正确写法:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/haduwi/article/details/111465754