深圳市专业的做网站,织梦做商城网站,东莞公司注册流程,wap搜索引擎2019独角兽企业重金招聘Python工程师标准 有两种方法#xff1a; 创建Component实现ApplicationContextAware接口#xff0c;SpringBoot会自动调用这个类的setApplicationConext()方法。鼓励使用这种方式。SpringApplication.run(MyApplication.class, args)这… 2019独角兽企业重金招聘Python工程师标准 有两种方法 创建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(ClassT clazz){ return getApplicationContext().getBean(clazz); } //通过name,以及Clazz返回指定的Bean public static T T getBean(String name,ClassT clazz){ return getApplicationContext().getBean(name, clazz); } } 转载于:https://my.oschina.net/u/2262481/blog/1630225