SpringBoot使用@Value给静态变量注入值

本文详细介绍了在SpringBoot项目中如何通过application-yml配置文件设置邮件服务器,包括SMTP服务器地址、发件人地址、授权码等关键参数,并讲解了如何使用@Value注解为普通变量和静态变量注入配置值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

application-yml 配置文件配置如下:

#JavaMailSender
spring:
  mail:
    host: smtp.163.com               #邮箱服务器地址
    username: xxxxx                  #发件人地址
    password: xxxxx                  #邮箱的授权码
    default-encoding: UTF-8
    port: 994
    properties:
      mail.smtp.socketFactory.class: javax.net.ssl.SSLSocketFactory

SpringBoot中使用@Value()只能给普通变量注入值,不能直接给静态变量赋值给普通变量赋值时,直接在变量声明之上添加@Value()注解即可;
当要给静态变量注入值的时候,若是在静态变量声明之上直接添加@Value()注解是无效的。
若要给静态变量赋值,可以使用set()方法,其中需要在类上加入@Component注解,方法名(例如setSendAddress)和参数名(例如sendAddress)可以任意命名,如下所示:

//邮件发送工具类
@Component    
public class MailUtil {
    //邮件的发送者
    private  static String sendAddress;
    // 注入MailSender
    private static JavaMailSender mailSender;
    //发送邮件的模板引擎
    private static FreeMarkerConfigurer freeMarkerConfigurer;

    @Value("${spring.mail.username}")
    public void setSendAddress(String sendAddress) {
        this.sendAddress = sendAddress;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值