在静态方法中使用Spring上下文

2017-04-01  本文已影响309人  SevenLin1993

使用场景

通过ApplicationContextAware获取ApplicationContext

ApplicationContextAwareSpring中提供的接口,实现该接口的类Spring将会把ApplicationContext通过setApplicationContext方法注入该类。

@Component
public class CxtDemo implements ApplicationContextAware {

    private ApplicationContext applicationContext;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.applicationContext = applicationContext;
    }
}

在静态方法中使用

通过上述方法我们已经拿到ApplicationContext,这样的话我们我们只需把类成员声明为static就可以

@Component
public class CxtDemo implements ApplicationContextAware {

    private static ApplicationContext applicationContext;
    
    //静态方法
    public static Object doSomethings(){
        // you can use applicationContext here  
        ...
    } 

    // 提供获取方法
    public static ApplicationContext applicationContext(){
       return applicationContext;
    }

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.applicationContext = applicationContext;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读