zoukankan      html  css  js  c++  java
  • SpringBoot获取ApplicationContext

    有两种方法:

    • 创建Component实现ApplicationContextAware接口,SpringBoot会自动调用这个类的setApplicationConext()方法。鼓励使用这种方式。
    • SpringApplication.run(MyApplication.class, args)这句话的返回值就是一个ConfigurableApplicationContext对象,直接用静态变量把这个对象保存下来就可以了。

    需要注意的是,SpringBoot只会扫描MyApplication.java所在包及其子包下的Component注解、Controller注解等。为了避免不必要的麻烦,一定要遵循“约定大于配置”原则,把MyApplication.java放在根包下。

    使用ApplicationContextAware的方式代码如下:

    @Component  
    public class SpringUtil implements ApplicationContextAware {  
      
        private static ApplicationContext applicationContext = null;  
    // 非@import显式注入,@Component是必须的,且该类必须与main同包或子包  
        // 若非同包或子包,则需手动import 注入,有没有@Component都一样  
        // 可复制到Test同包测试  
      
        @Override  
        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {  
            if(SpringUtil.applicationContext == null){  
                SpringUtil.applicationContext  = applicationContext;  
            }  
            System.out.println("---------------com.ilex.jiutou.util.Test.Main.SubPackage.SpringUtil---------------");  
        }  
      
        //获取applicationContext  
        public static ApplicationContext getApplicationContext() {  
            return applicationContext;  
        }  
      
        //通过name获取 Bean.  
        public static Object getBean(String name){  
            return getApplicationContext().getBean(name);  
      
        }  
      
        //通过class获取Bean.  
        public static <T> T getBean(Class<T> clazz){  
            return getApplicationContext().getBean(clazz);  
        }  
      
        //通过name,以及Clazz返回指定的Bean  
        public static <T> T getBean(String name,Class<T> clazz){  
            return getApplicationContext().getBean(name, clazz);  
        }  
      
    }  
    
  • 相关阅读:
    YUI: Effects Widgets
    提高Web页面的性能(一)
    textindent 隐藏文字时出现的 outline 问题
    通过 Dom 方法提高 innerHTML 性能
    IE8 beta1 中的 CSS 属性
    推荐的 CSS 书写顺序
    来自经典论坛的javascript小小考题
    IE5 到 IE8 的 CSS 兼容列表
    backgroundclip 与 backgroundorigin 的一则运用
    收集整理的对#!bin/sh的认识
  • 原文地址:https://www.cnblogs.com/weiyinfu/p/7502039.html
Copyright © 2011-2022 走看看