美文网首页
Spring通过@Value给静态变量注入值

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

作者: willcoder | 来源:发表于2019-06-12 08:46 被阅读0次

前提

@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方法。


eg:

@Value("${txp.order.giveawaySwitch:false}”)
//冒号后面默认值
private boolean giveawaySwitch;


#赠品开关   properties中配置
txp.order.giveawaySwitch=true

相关文章

网友评论

      本文标题:Spring通过@Value给静态变量注入值

      本文链接:https://www.haomeiwen.com/subject/fxbytctx.html