4.1 什么是Bean
Bean是描述Java的软件组件模型,有点类似于Microsoft的COM组件的概念。
4.2 Bean的基础知识
org.springframework.beans和org.springframework.context大量引j用了Java中的反射机制,通过动态调用的方式避免了硬编码,实现了一种无侵入式的框架。
4.2.1 Bean的标识(id和name)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!--定义一个Bean -->
<bean id="HelloWorld" class="com.gc.action.HelloWorld">
<!--将其变量msg通过依赖注入 -->
<property name="msg">
<null></null>
</property>
</bean>
<bean id="messageSource"
</beans>
一个Bean一般有一个id,有多个为别名,id唯一标识一个Bean,也可用name属性来指定Bean的id。
4.2.2 Bean的类(class)
4.2.3 Singleton的使用
singleton为单例模式,默认为singleton
<bean id="HelloWorld" class="com.gc.action.HelloWorld" singleton="true">
</bean>
4.2.4 Bean的属性
除了set注入和构造注入外,还可参考其他Bean
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!--定义一个Bean -->
<bean id="HelloWorld" class="com.gc.action.HelloWorld">
<!--将其变量msg通过依赖注入 -->
<property name="msg">
<null></null>
</property>
<property name="date">
<bean id="date" class="java.util.Date" />
</property>
</bean>
</beans>
或
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!--定义一个Bean -->
<bean id="HelloWorld" class="com.gc.action.HelloWorld">
<!--将其变量msg通过依赖注入 -->
<property name="msg">
<null></null>
</property>
<property name="date">
<ref bean id="date"/>
</property>
</bean>
<bean id="date" class="java.util.Date" />
</beans>
4.2.5 对于null值的处理
<property name="msg">
<value>null</value>
</property>
或
<property name="msg">
<null/>
</property>
4.2.6 使用依赖depends-on
Bean的depends-opn属性可以用来在初始化使用Bean之前,强制执行一个或多个Bean的初始化。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!--定义一个Bean -->
<bean id="HelloWorld" class="com.gc.action.HelloWorld" depends-on="data">
<!--将其变量msg通过依赖注入 -->
<property name="msg">
<null></null>
</property>
<property name="date">
<ref bean id="date"/>
</property>
</bean>
<bean id="date" class="java.util.Date" />
</beans>
4.2.7 一个较为完整的Bean配置文档