为了账号安全,请及时绑定邮箱和手机立即绑定

SpringUtil.java工具类有什么用啊?

SpringUtil.java工具类有什么用啊?

长风秋雁 2019-03-22 19:19:08
为什么要继承ApplicationContextAware实现ApplicationContext的这些相关方法,感觉这些方法都在spring中有提供的啊,写这个SpringUtil.java工具类有什么用啊?在代码中也没有看到别的地方有对这个工具类的引用??代码如下:import org.springframework.beans.BeansException;import org.springframework.beans.factory.NoSuchBeanDefinitionException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware; public class SpringContextUtil implements ApplicationContextAware {     private static ApplicationContext applicationContext;     //Spring应用上下文环境          public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {         SpringContextUtil.applicationContext = applicationContext;     }     public static ApplicationContext getApplicationContext() {       return applicationContext;     }         public static Object getBean(String name) throws BeansException {       return applicationContext.getBean(name);     }       public static <T> T getBean(Class<T> requiredType) {       return applicationContext.getBean(requiredType);   }    public static <T> T getBean(String name, Class<T> requiredType) throws BeansException {       return applicationContext.getBean(name, requiredType);     }         public static boolean containsBean(String name) {       return applicationContext.containsBean(name);     }         public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {       return applicationContext.isSingleton(name);     }     @SuppressWarnings("rawtypes")public static Class getType(String name) throws NoSuchBeanDefinitionException {       return applicationContext.getType(name);     }         public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {       return applicationContext.getAliases(name);     }   }  
查看完整描述

2 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

Spring 的重要作用是依赖注入。将bean的生成交给Spring处理。但是也往往会遇到一些类,这些类可能不需要实例化,里面全部是静态方法;也可能自身获取自身的实例…总之,这个类并没有把自己交给Spring来生成。但是这个类又调用了Spring产生的实例。这个时候依赖注入可能是无法生效的~ 这个时候就需要采用SpringUtil的getBean()方法来获取这个实例了。

查看完整回答
1 反对 回复 2019-04-21
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

这就是个获取Bean实例的工具类,也没什么特别的含义。

Spring容器启动时,自动把所有的ApplicationContextAware实现找出来,然后为其注入ApplicationContext属性,使得SpringContextUtil就可以自由自在的根据名字获取Bean实例了。

当你哪里需要手动获取Bean实例时,就可以直接用SpringContextUtil类了啊。

如果你们的代码里从来没用过,那会不是是什么人一高兴,从网上抄了这么一段丢到项目里了,也没关心是干嘛用的?

(最后纯属揣测,如有错误见谅)


查看完整回答
反对 回复 2019-04-21
  • 2 回答
  • 0 关注
  • 2172 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号