获得spring里注册Bean的有好几种方法,这里介绍一种比较简单的方法:

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
 
/**
 *功能描述:获取spring容器,以访问容器中定义的其他bean 
 */
  /**  
 
public class SpringContextUtil implements ApplicationContextAware {

/** 
  * 以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候中取出ApplicaitonContext. 
  *   
  *  
  */
        private static ApplicationContext applicationContext; //Spring应用上下文环境   
 
        /**  
         * 实现ApplicationContextAware接口的回调方法,设置上下文环境     
         * @param applicationContext  
         * @throws BeansException  
         */
        public void setApplicationContext(ApplicationContext applicationContext)
                        throws BeansException {
                SpringContextUtil.applicationContext = applicationContext;
        }
 
        /**  
         * @return ApplicationContext  
         */
        public static ApplicationContext getApplicationContext() {
                return applicationContext;
        }
 
        /**  
         * 获取对象     
         * @param name  
         * @return Object 一个以所给名字注册的bean的实例  
         * @throws BeansException  
         */
        public static Object getBean(String name) throws BeansException {
                return applicationContext.getBean(name);
        }
 
        /**  
         * 获取类型为requiredType的对象  
         * 如果bean不能被类型转换,相应的异常将会被抛出(BeanNotOfRequiredTypeException)  
         * @param name       bean注册名  
         * @param requiredType 返回对象类型  
         * @return Object 返回requiredType类型对象  
         * @throws BeansException  
         */
        public static Object getBean(String name, Class requiredType)
                        throws BeansException {
                return applicationContext.getBean(name, requiredType);
        }
 
        /**  
         * 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true   
         * @param name  
         * @return boolean  
         */
        public static boolean containsBean(String name) {
                return applicationContext.containsBean(name);
        }
 
        /**  
         * 判断以给定名字注册的bean定义是一个singleton还是一个prototype。  
         * 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException)     
         * @param name  
         * @return boolean  
         * @throws NoSuchBeanDefinitionException  
         */
        public static boolean isSingleton(String name)
                        throws NoSuchBeanDefinitionException {
                return applicationContext.isSingleton(name);
        }
 
        /**  
         * @param name  
         * @return Class 注册对象的类型  
         * @throws NoSuchBeanDefinitionException  
         */
        public static Class getType(String name)
                        throws NoSuchBeanDefinitionException {
                return applicationContext.getType(name);
        }
 
        /**  
         * 如果给定的bean名字在bean定义中有别名,则返回这些别名     
         * @param name  
         * @return  
         * @throws NoSuchBeanDefinitionException  
         */
        public static String[] getAliases(String name)
                        throws NoSuchBeanDefinitionException {
                return applicationContext.getAliases(name);
        }
}

-------------------
调用:

UserService userService = (UserService) SpringContextUtil.getBean("userService");

一种获取spring环境上下文方法:SpringContextUtil的更多相关文章

  1. 十二种获取Spring的上下文环境ApplicationContext的方法

    转载:https://my.oschina.net/u/2391658/blog/729414

  2. 获取spring容器上下文(webApplicationContext)的几种方法

    在很多情况,我们需要先获取spring容器上下文,即webApplicationContext,然后通过webApplicationContext来获取其中的bean.典型的情况是,我想在一个并未委托 ...

  3. 获取Spring的上下文环境ApplicationContext的方式

    摘自: http://blog.csdn.net/yang123111/article/details/32099329 获取Spring的上下文环境ApplicationContext的方式 Web ...

  4. 怎么随时获取Spring的上下文ApplicaitonContext,和Spring管理的Bean

    BeanFactory接口 Interface BeanFactory getBean <T> T getBean(String name, Class<T> required ...

  5. 介绍几种搭建Dojo环境的方法

    Hello World! 的时间到了,在你所学过的众多语言中,哪个不是从此学起的呢?但在此之前,我们要先构建一个开发环境,如同刚开始学习Java的时候,还是需要我们先安装JDK.配置好环境变量等等,H ...

  6. php 两种获取分类树的方法

    php 两种获取分类树的方法 1. /** * 获取分类树 * @param array $array 数据源 * @param int $pid 父级ID * @param int $level 分 ...

  7. 【Spring】非Spring IOC容器下获取Spring IOC上下文的环境

    前言 在Spring Web项目中,有些特殊的时候需要在非Spring IOC容器下获取Spring IOC容器的上下文环境,比如获取某个bean. 版本说明 声明POM文件,指定需引入的JAR. & ...

  8. 获取Spring应用环境上下文bean

    import org.springframework.beans.BeansException; import org.springframework.beans.factory.NoSuchBean ...

  9. 获取spring容器对象方法和原因

    为什么要获取Spring容器对象:拿到spring容器对象后,你就可以用spring管理的bean了,拿到bean,自然可以使用bean的方法,场景:比如jsp页面.通过注解是无法注入bean的,在开 ...

随机推荐

  1. 通过AJAX和PHP,提交JQuery Mobile表单

    File name: callajax.php <?php $firstName = $_POST[firstName]; $lastName = $_POST[lastName]; echo( ...

  2. 写一个Windows上的守护进程(7)捕获异常并生成dump

    写一个Windows上的守护进程(7)捕获异常并生成dump 谁都不能保证自己的代码不出bug.一旦出了bug,最好是崩溃掉,这样很快就能被发现,若是不崩溃,只是业务处理错了,就麻烦了,可能很长时间之 ...

  3. css 实现进度条

    <select id="progress" onchange="changeProgress(this)"> <option value=&q ...

  4. (原)使用vectot的.end()报错:iterators incompatible

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5070672.html 参考网址: http://blog.csdn.net/yxnyxnyxnyxny ...

  5. windows 下查看端口占用命令

    cmd netstat -ano

  6. python:利用urllib查找计算机二级准考证号

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaYAAAEACAIAAAB3VkWnAAAgAElEQVR4nOydZ3gUR9bv+WhExhHnDH

  7. window7下statsvn统计代码量

    下载statsvn:http://www.statsvn.org/ 将下载后的statsvn.jar放到d:\svn目录下; 打开cmd窗口切换到需要统计代码的项目目录如:d:\project\web ...

  8. scrollbarsstyle

    android:scrollbarStyle属性及滚动条和分割线覆盖问题 本文主要介绍android view的android:scrollbarStyle属性意义android:scrollbarS ...

  9. SQLSERVER读懂语句运行的统计信息

    SQLSERVER读懂语句运行的统计信息 对于语句的运行,除了执行计划本身,还有一些其他因素要考虑,例如语句的编译时间.执行时间.做了多少次磁盘读等. 如果DBA能够把问题语句单独测试运行,可以在运行 ...

  10. jquery判断元素是否隐藏的多种方法

    第一种:使用CSS属性 复制代码 代码如下: var display =$('#id').css('display'); if(display == 'none'){    alert("被 ...