ApplicationContext中getBean详解

时间:2023-11-25 19:05:20

在org.springframework.context包中有一个接口叫 applicationContext

applicationContext中有一个getBean方法,此方法继承之BeanFactory

Methods inherited from interface org.springframework.beans.factory.BeanFactory

containsBean, getAliases, getBean, getBean, getBean, getType, isPrototype, isSingleton, isTypeMatch

在BeanFactory中getBean描述如下

 Object getBean(String name)
          Return an instance, which may be shared or independent, of the specified bean.

返回一个指定bean的实例,它可以是共享的、也可以是独立的。 返回的是对象

Method Detail

Object getBean(String name)throws BeansException
Return an instance, which may be shared or independent, of the specified bean.

This method allows a Spring BeanFactory to be used as a replacement for the Singleton or Prototype design pattern. Callers may retain references to returned objects in the case of Singleton beans.

Translates aliases back to the corresponding canonical bean name. Will ask the parent factory if the bean cannot be found in this factory instance.

Parameters:
name - the name of the bean to retrieve
Returns:
an instance of the bean
Throws:
NoSuchBeanDefinitionException - if there is no bean definition with the specified name
BeansException - if the bean could not be obtained
实例:

ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");

UserService service = (UserService)ctx.getBean("userService");

因为getBean返回一个对象,所以要强制转换