获得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. POJ 1269 - Intersecting Lines 直线与直线相交

    题意:    判断直线间位置关系: 相交,平行,重合 include <iostream> #include <cstdio> using namespace std; str ...

  2. Mac OS X和iOS上基本数据类型的字节数

    在Mac和IPhone上分别运行下面的程序: NSLog(@"char size = %lu", sizeof(char)); NSLog(@"short int siz ...

  3. vi打开二进制文件

    vi -b filename <c7><cc>><0b><00><00><01><01><c2>& ...

  4. 十进制二进制之间的转化 PHP算法

    [ 十进制转二进制 ] function test($var){ $func = function($i){ if($i < 2){ return $i; } $return['int'] = ...

  5. sqlserver 2000新建sysadmin角色

    新建登录:sp_addlogin 'netcafe','pubwin'  netcafe是用户名,pubwin是密码,下面是msdn官方格式: sp_addlogin [ @loginame = ] ...

  6. 三维地图(BFS)

    亡命逃窜 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 从前有个叫hck的骑士,为了救我们美丽的公主,潜入魔王的老巢,够英雄吧.不过英雄不是这么好当的.这个可怜的娃 ...

  7. jQuery EasyUI求助

    最近在学习easyui的时候遇到了一个很奇怪的问题,在使用datagrid组件的时候,我想自定义一个列,用来显示一个查看详细页面的链接,但是当这个列不是最后一列的时候,链接一直显示不出来,求大神们指点 ...

  8. 前端MVVM学习之KnockOut(二)

    现在开始学习Knockout并且做个简单的例子. Knockout是建立在以下三个核心功能之上的: 1.Observables and dependency tracking(属性监控与依赖跟踪) 2 ...

  9. usb开发笔记

    U盘应属于海量存储类. USB海量存储设备,又包括通用海量存储子类,CDROM,Tape等,U盘实际上属于海量存储类中通用海量存储子类.通用海量存储设备实现上是基于块/扇区存储的设备. USB组织定义 ...

  10. arcgis api for silverlight

    原文 http://blog.sina.com.cn/s/blog_4638cf7b0100wntt.html arcgis api for silverlight(1) (2011-09-21 09 ...