情况说明:

    1. 在异步的请求中,我们无法通过@Autowired 或者 @Resource 的方式引入对象;
    2. 需要通过Application提供的上下文,才能够找到对应的对象,从而进行操作。
    1. import org.springframework.beans.BeansException;
    2. import org.springframework.context.ApplicationContext;
    3. import org.springframework.context.ApplicationContextAware;
    4. import org.springframework.stereotype.Component;
    5. @Component
    6. public class SpringUtil implements ApplicationContextAware{
    7. private static ApplicationContext applicationContext = null;
    8. @Override
    9. public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
    10. if (null == SpringUtil.applicationContext) {
    11. SpringUtil.applicationContext = applicationContext;
    12. }
    13. }
    14. //获取applicationContext
    15. public static ApplicationContext getApplicationContext() {
    16. return applicationContext;
    17. }
    18. //通过class获取Bean.
    19. public static <T> T getBean(Class<T> clazz){
    20. return getApplicationContext().getBean(clazz);
    21. }
    22. //通过name,以及Clazz返回指定的Bean
    23. public static <T> T getBean(String name,Class<T> clazz){
    24. return getApplicationContext().getBean(name, clazz);
    25. }
    26. }