spring核心:bean工厂的装配 1

本文中主要包含spring中bean工厂的相关知识。主要包含一下话题:

1.bean factory getstart初时bean工厂

2.bean基础定义

3.使用构造函数创建bean

4.使用静态工厂方法创建bean

5.使用非静态工厂方法创建bean

6.bean的标识符

7.何时使用singleton

8.设置bean的属性和协作者

9.bean构造函数选择决议

10.自动装配

11.依赖检查

12.使用value元素设定属性

13.使用null设定空值

14.使用collection设定集合

15.定义内部bean

16.使用idref元素预检查错误

17.使用ref设定依赖

18.value和ref的简写

19.方法的注入

20.bean的生命周期接口

21.让bean知道自己的身份

22.父bean和子bean

23.定制bean工厂

上面的内容比较多,可能分为几个部分来说明。这篇文章中主要包含:

1.bean factory getstart初时bean工厂

2.bean基础定义

1.bean factory getstart初时bean工厂

在spring中最基本的BeanFactory接口是org.springframework.beans.factory.BeanFactory,其代码如下:

public interface BeanFactory { String FACTORY_BEAN_PREFIX = "&"; Object getBean(String name) throws BeansException; <T> T getBean(String name, Class<T> requiredType) throws BeansException; <T> T getBean(Class<T> requiredType) throws BeansException; Object getBean(String name, Object... args) throws BeansException; boolean containsBean(String name); boolean isSingleton(String name) throws NoSuchBeanDefinitionException; boolean isPrototype(String name) throws NoSuchBeanDefinitionException; boolean isTypeMatch(String name, Class targetType) throws NoSuchBeanDefinitionException; Class<?> getType(String name) throws NoSuchBeanDefinitionException; String[] getAliases(String name); }

这个接口中常用的方法有三个:getBean, isSingleton, getAlians. 在实际的项目中可以这么实例化BeanFactory:

/** * 加载spring的运行环境 */ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

多数的情况下,客户代码是不需要直接实例化ApplicationContextd的,spring的框架会在背后自动执行,在web启动服务的时候,自动加载ApplicationContext。

2.bean基础定义

bean的基础定义如下:

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> </beans>

在myeclipse 8.5中可以这么添加一个bean:

spring核心:bean工厂的装配 1

然后就会显示下面的对话框:

spring核心:bean工厂的装配 1

在下面的几篇文章中将逐步解释上面对话框中的选项如何填写。