[color=red]bean的创建[/color]
1.通过构造方法创建bean
<bean id="exampleBean" class="ExampleBean">
<constructor-arg><ref bean="fristBean"/><constructor-arg/>
<constructor-arg><ref bean="secondBean"/><constructor-arg/>
<constructor-arg><value>1</value><constructor-arg/>
</bean>
......
2.通过静态工厂方法创建bean
<bean id="exampleBean" class="ExampleFactoryBean"
factory-method="createInstance">
<constructor-arg><ref bean="fristBean"/><constructor-arg/>
<constructor-arg><ref bean="secondBean"/><constructor-arg/>
<constructor-arg><value>1</value><constructor-arg/>
</bean>
......
class指定工厂类,factory-method指定工厂方法,必须为static
3.通过实例工厂方法创建bean
<bean id="myFactoryBean" class="..."/>
<bean id="myBean"
factory-bean="myFactoryBean" factory-method="createInstance"/>
[color=red]bean中property元素的定义[/color]
<property name="email"><null/></property> null元素指定null值
<property name="email"><value></value></property> 空字符串
java的List,Set,Map和Properties类型对应的元素定义
<props>
<prop key="a">this is a</prop>
<prop key="b">this is b</prop>
</props>
<list>
<value>...</value>
<ref bean="">
</list>
<map>
<entry key="a">
<value>aaa</value>
</entry>
<entry key="b">
<value>bbb</value>
</entry>
</map>
<set>
<value>...</value>
<ref bean="">
</set>
ref元素定义
<ref bean="bean"/> 引用所有定义中的bean
<ref local="localBean"/> 引用同一xml文件中定义的bean
<ref parent="parentBean"/> 引用父ApplicationContext中定义的bean
[color=red]自动装配注入对象[/color]
<bean id="" class="" autowire="byName"/>
显示的指定依赖如property和construtor-arg元素,会覆盖自动装配
[color=red]bean的生命周期接口[/color]
org.springframework.beans.factory.InitializingBean接口
org.springframework.beans.factory.DisposableBean接口
通过init-method和destroy-method元素来指定方法执行bean属性设置后的初始化操作,bean销毁回收前操作。
<bean id="" class="" init-method="init"/>
<bean id="" class="" destroy-method="close"/>
[color=red]子bean定义[/color]
<bean id="parentBean" class="ParentBean">
<property name="name"><value>joson</value></property>
<property name="age"><value>20</value></property>
</bean>
<bean id="childBean" class="ChildBean" parent="parentBean">
<property name="name"><value>Peter</value></property>
</bean>
继承,覆盖父类的配置数据,方法
[color=blue]<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>WEB-INF/mail.properties</value>
<value>WEB-INF/jdbc.properties</value>
</list>
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>[/color]
1.通过构造方法创建bean
<bean id="exampleBean" class="ExampleBean">
<constructor-arg><ref bean="fristBean"/><constructor-arg/>
<constructor-arg><ref bean="secondBean"/><constructor-arg/>
<constructor-arg><value>1</value><constructor-arg/>
</bean>
......
2.通过静态工厂方法创建bean
<bean id="exampleBean" class="ExampleFactoryBean"
factory-method="createInstance">
<constructor-arg><ref bean="fristBean"/><constructor-arg/>
<constructor-arg><ref bean="secondBean"/><constructor-arg/>
<constructor-arg><value>1</value><constructor-arg/>
</bean>
......
class指定工厂类,factory-method指定工厂方法,必须为static
3.通过实例工厂方法创建bean
<bean id="myFactoryBean" class="..."/>
<bean id="myBean"
factory-bean="myFactoryBean" factory-method="createInstance"/>
[color=red]bean中property元素的定义[/color]
<property name="email"><null/></property> null元素指定null值
<property name="email"><value></value></property> 空字符串
java的List,Set,Map和Properties类型对应的元素定义
<props>
<prop key="a">this is a</prop>
<prop key="b">this is b</prop>
</props>
<list>
<value>...</value>
<ref bean="">
</list>
<map>
<entry key="a">
<value>aaa</value>
</entry>
<entry key="b">
<value>bbb</value>
</entry>
</map>
<set>
<value>...</value>
<ref bean="">
</set>
ref元素定义
<ref bean="bean"/> 引用所有定义中的bean
<ref local="localBean"/> 引用同一xml文件中定义的bean
<ref parent="parentBean"/> 引用父ApplicationContext中定义的bean
[color=red]自动装配注入对象[/color]
<bean id="" class="" autowire="byName"/>
显示的指定依赖如property和construtor-arg元素,会覆盖自动装配
[color=red]bean的生命周期接口[/color]
org.springframework.beans.factory.InitializingBean接口
org.springframework.beans.factory.DisposableBean接口
通过init-method和destroy-method元素来指定方法执行bean属性设置后的初始化操作,bean销毁回收前操作。
<bean id="" class="" init-method="init"/>
<bean id="" class="" destroy-method="close"/>
[color=red]子bean定义[/color]
<bean id="parentBean" class="ParentBean">
<property name="name"><value>joson</value></property>
<property name="age"><value>20</value></property>
</bean>
<bean id="childBean" class="ChildBean" parent="parentBean">
<property name="name"><value>Peter</value></property>
</bean>
继承,覆盖父类的配置数据,方法
[color=blue]<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>WEB-INF/mail.properties</value>
<value>WEB-INF/jdbc.properties</value>
</list>
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>[/color]