@Value注入static属性

Posted justlove

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@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注解的方法会在依赖注入完成后被自动调用。


 

以上是关于@Value注入static属性的主要内容,如果未能解决你的问题,请参考以下文章

Spring static 静态属性注入

工具类使用@Value将信息注入到静态变量中

spring注入时bean的set方法为啥不能是static类型的?

Spring中属性注入——复杂属性list,map,set,arr等的注入

Java Spring:如何使用`@Value`注解注入`Environment`属性?

Spring属性注入