Spring IOC 要点:之四bean属性参数详解

直接量(基本类型、Strings类型等。)

<value/>元素
通过字符串来指定属性或构造器参数的值
<bean id="myDataSource" destroy-method="close"
    class="org.apache.commons.dbcp.BasicDataSource">
  <!-- results in a setDriverClassName(String) call -->
  <property name="driverClassName">
    <value>com.mysql.jdbc.Driver</value>
  </property>
  <property name="url">
    <value>jdbc:mysql://localhost:3306/mydb</value>
  </property>
  <property name="username">
    <value>root</value>
  </property>
</bean>
idref元素
idref元素用来将容器内其它bean的id传给<constructor-arg/> 或 <property/>元素,同时提供错误验证功能。
<bean id="theTargetBean" class="..."/>
<bean id="theClientBean" class="...">
    <property name="targetName">
        <idref bean="theTargetBean" />
    </property>
</bean>
<!--上述bean定义片段完全地等同于(在运行时)以下的片段:
<bean id="theTargetBean" class="..."/>
<bean id="client" class="...">
    <property name="targetName">
        <value>theTargetBean</value>
    </property>
</bean>
-->

property的几种写法

属性文件式:
<bean id="mappings" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<!-- typed as a java.util.Properties -->
  <property name="properties">
    <value>
      jdbc.driver.className=com.mysql.jdbc.Driver
      jdbc.url=jdbc:mysql://localhost:3306/mydb
    </value>
  </property>
</bean>

标签内部式(手写的最好方式):
<bean id="foo" class="xxx.Foo">
  <property name="bar" value="com.mysql.jdbc.Driver"/>
  <property name="baz" value="jdbc:mysql://localhost:3306/mydb"/>
  <property name="bean1" ref="root"/>
</bean>

标准式:(综合例子)
<bean id="foo" class="xxx.Foo" destroy- method="close">
<bean id="client" class="...">
    <!-- 值(直接量)属性-->
    <property name="valueProp1">
        <value>A String</value>
    </property>
    <property name="valueProp1">
        <value>1</value>
    </property>
    <!--bean(对象)属性-->
    <property name="somebean1">
        <!-- local 只能引用本XML文件内定义的bean-->
        <ref local="somebean1">
    </property>
    <property name="somebean2">
        <!-- bean 可引用本Ioc容器内任何文件内定义的bean-->
        <ref bean="somebean2">
    </property>
    <property name="proxyTaget">
        <!-- parent 引用父bean,(一般用于代理) 注意这里的ref引用的client就是这个bean的ID-->
        <ref parent="client"/>
    </property>
</bean>

你可能感兴趣的:(spring,bean,mysql,jdbc,IOC)