Spring容器管理着一个或多个Bean。这些Bean是容器根据配置元数据创建出来的。在容器中,这些Bean定义被表示为BeanDefinition
对象。
1、Bean命名
在容器中每个Bean必须有一个唯一的标识符,可以有多个别名。如果不指定,容器会为该Bean生成一个唯一的名称。
2、实例化Bean
-
用构造函数进行实例化
-
用静态工厂方法进行实例化
<bean id="clientService" class="examples.ClientService" factory-method="ceateInstance"/>
public class ClientService { private static ClientService clientService = new ClientService(); private ClientService() {} public static ClientService createInstance() { return clientService; } }
-
用实例工厂方法进行实例化
<bean id="serviceLocator" class="examples.DefaultServiceLocator"> ... </bean> <bean id="clientService" factory-bean="serviceLocator" factory-method="createClientServiceInstance"/>
public class DefaultServiceLocator{ private static ClientService clientService = new ClientServiceImpl(); public ClientService createClientServiceInstance() { return clientService; } }
-
确定Bean的运行时类型
BeanFactory.getType
调用。