@Value注入static属性

1. 给参数注入,执行set方法

public class SendMessageCenter {

    private static String message;
    private static String page;

    @Value("${great-plat.messageCenter}")
    public void setMessage(String message) {
        SendMessageCenter.message = message;
    }
    @Value("${great-plat.page}")
    public void setPage(String page) {
        SendMessageCenter.page = page;
    }
}

在set方法上面添加注解的,一定要在Class上添加@Component注解,这样Spring才能扫描到。 如果用xml配置扫描包。需要加载spring-mvc.xml。

2.给中间变量赋值

public class SendMessageCenter {

    private static String message;
    private static String page;

    @Value("${great-plat.messageCenter}")
    private String messageTmp;
    @Value("${great-plat.page}")
    private String pageTmp;
    
    @PostConstruct
    public void init(){
        message=messageTmp;
        page=pageTmp;
    }
}

初始化操作顺序:Constructor>>@Autowired>>@PostConsruct

扩展: 如果现在生成对象时候完成某些初始化操作,而偏偏这些初始化操作又依赖于依赖注入,那么就无法在构造函数中实现,为此,可以使用@PostConstruct注解一个方法来完成初始化,@PostConstruct注解的方法会在依赖注入完成后被自动调用。


原文地址:https://www.cnblogs.com/justlove/p/11401945.html