`
wayJava
  • 浏览: 29241 次
  • 性别: Icon_minigender_1
  • 来自: 福建
最近访客 更多访客>>
社区版块
存档分类
最新评论

spring 获取bean

    博客分类:
  • ssh
阅读更多

http://weizhigan.iteye.com/blog/719957

 

 

public class SpringContextUtil implements ApplicationContextAware {
	  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);
	  }
	}

 

    以下报错,项目是ssh框架

HomeAction action = (HomeAction) SpringContextUtil.getBean("HomeAction");

   如果用new的方式,service等注入的报空指针

HomeAction action = new HomeAction();调用方法时用到service层的会报空指针

    setService

 action.setUsersService((UsersService)SpringContextUtil.getBean("UsersService"));// 错误

action.setUsersService(this.usersService);// @Autowired private UsersService usersService; 正确

分享到:
评论

相关推荐

    几种spring获取bean的方法.txt

    ### 几种Spring获取Bean的方法 #### 1. 通过`WebApplicationContext`获取Bean 在Web环境下,Spring提供了`WebApplicationContext`接口,它是`ApplicationContext`的子接口,专门用于Web应用。可以通过`...

    Java中Spring获取bean方法小结

    这里我们将详细探讨如何在Java中通过Spring获取配置的bean。 1. **BeanFactory与ApplicationContext** - **BeanFactory** 是Spring中最基础的IoC容器,负责管理和实例化Bean。它允许开发者定义Bean的生命周期和...

    Spring获取Bean类

    Spring获取Bean类

    通过spring获取Bean.zip

    零基础入门spring,通过spring获取Bean。我博客https://blog.csdn.net/qq_40634846的Spring专栏里面有循序渐进的spring文章,有兴趣可以关注本博客,希望对大家有用。

    spring中的bean

    在本篇中,我们将深入探讨"Spring中的Bean"这一主题,包括Bean的定义、配置以及如何在实际应用中使用。 首先,我们需要理解什么是Spring中的Bean。在Spring中,Bean通常代表应用程序中的一个对象,这些对象由Spring...

    java *spring工具类 方便在非spring管理环境中获取bean

    java *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取...

    @PostConstruct注解用来获取springbean对象.txt

    获取springbean对象

    线程中获取spring 注解bean

    在提交任务时,可以将bean作为参数传递,或者在任务内部使用`ApplicationContextAware`接口获取应用上下文,从而获取bean。 4. **ApplicationContextAware**:让线程处理类实现`ApplicationContextAware`接口,...

    Spring实战之获得Bean本身的id操作示例

    今天,我们将通过一个实例形式来分析Spring获取Bean本身id的相关配置与实现技巧。 首先,让我们来看一下配置文件beans.xml: ```xml xmlns="http://www.springframework.org/schema/beans" xsi:...

    java spring工具类 方便在非spring管理环境中获取bean

    java spring工具类 方便在非spring管理环境中获取beanjava spring工具类 方便在非spring管理环境中获取beanjava spring工具类 方便在非spring管理环境中获取beanjava spring工具类 方便在非spring管理环境中获取bean...

    Spring在代码中获取bean的方法小结

    在非Spring管理的类中,如果该类由Spring初始化,我们可以创建一个持有ApplicationContext的成员变量,并使用`@Autowired`注解进行注入,再通过ApplicationContext获取Bean: ```java @Autowired private ...

    Spring如何获取Bean

    Spring 中获取 Bean 的多种方式 在 Spring 框架中,获取 Bean 是一个非常重要的步骤,因为它是使用 Spring 框架的基础。Spring 提供了多种方式来获取 Bean,这些方式可以根据不同的应用场景选择使用。 通过 XML ...

    Spring Bean创建初始化流程.docx

    5. **获取Bean实例**: 在预实例化过程中,`getBean(beanName)`被调用,这是`AbstractBeanFactory`类中的一个方法,用于从Bean工厂中获取指定名称的Bean实例。 6. **实际获取Bean**: 进入`doGetBean()`方法,这...

    第一章 Spring4 简介及获取Bean

    - 博文链接:https://1151461406.iteye.com/blog/2389888,这个链接可能包含有关Spring4入门和获取Bean的具体教程。 - 在线课程:如Coursera、Udemy等平台上的Spring课程。 - 开源项目:参与开源项目,了解Spring在...

    Spring启动后获取所有拥有特定注解的Bean实例代码

    在Bean的生命周期中,Spring提供了多种方式来获取Bean的实例,例如通过getBean方法、通过BeanFactory获取Bean实例等。 在获取所有拥有特定注解的Bean实例代码时,需要注意的是,ApplicationContextAware接口不能...

    spring创建bean简单示例

    3. **加载配置并获取Bean**: 在Java代码中,使用`ClassPathXmlApplicationContext`加载XML配置文件,并通过Bean的ID获取并使用Bean实例。 ```java ApplicationContext context = new ...

    Web项目中获取SpringBean与在非Spring组件中获取SpringBean.pdf

    `@Autowired`注解会自动注入BeanFactory,由于它是静态的,所以在任何地方都可以直接通过`SpringWiredBean.beanFactory`获取Bean。 这种方法避免了在XML配置文件中添加额外的Bean声明,更加简洁。但是需要注意,...

    spring依赖注入bean

    在 Java 应用中,我们可以创建一个主类来启动应用程序,并从 Spring 容器中获取 Bean 实例。例如: ```java public class MainApp { public static void main(String[] args) { ApplicationContext context = new...

    Spring在应用中获得Bean的方法

    本篇文章将深入探讨如何在Spring应用中获取Bean,以及相关的源码分析和实用工具。 首先,Spring容器(ApplicationContext)是管理Bean的中心,它负责Bean的生命周期和依赖注入。获取Bean主要有以下几种方式: 1. *...

Global site tag (gtag.js) - Google Analytics