Spring基础-BeanFactory和ApplicationContext

bean的创建
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"/>

bean中property元素的定义
  <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

自动装配注入对象
  <bean id="" class="" autowire="byName"/>
  显示的指定依赖如property和construtor-arg元素,会覆盖自动装配

bean的生命周期接口
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"/>

子bean定义
<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>
继承,覆盖父类的配置数据,方法

<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>

你可能感兴趣的:(spring,bean,xml,Web,jdbc)