0
点赞
收藏
分享

微信扫一扫

Spring通过@Value给静态变量注入值


前提

spring不允许/不支持把值注入到静态变量中,如

@Value("${smtpHost}")
public static String smtpHost;

在方法中获取的smtpHost则为null

解决

Spring支持set方法注入,可以利用非静态的setter方法注入静态常量。注意set方法不能有static

public static String smtpHost;
@Value("${smtpHost}")
public void setSmtpHost(String smtpHost) {
MailUtil.smtpHost = smtpHost;
}

spring不支持给静态变量的原因

Spring的@Value依赖注入是依赖set方法

set方法是普通的对象方法

static变量是类的属性,static没有set方法。

总结

之所以不会,还是因为做的太少啊。加油吧,比卡丘!



举报

相关推荐

0 条评论