一起来读官方文档—–SpringIOC(04)
- 2020 年 9 月 14 日
- 筆記
1.4.2。依赖性和详细配置
如上一节所述,您可以将bean属性和构造函数参数定义为对其他托管bean(协作者)的引用或内联定义的值。Spring的基于XML的配置元数据为此目的在其
直值(原语,字符串等)
在value所述的属性
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<!-- results in a setDriverClassName(String) call -->
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
<property name="username" value="root"/>
<property name="password" value="misterkaoli"/>
</bean>
<beans xmlns="//www.springframework.org/schema/beans"
xmlns:xsi="//www.w3.org/2001/XMLSchema-instance"
xmlns:p="//www.springframework.org/schema/p"
xsi:schemaLocation="//www.springframework.org/schema/beans
//www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close"
p:driverClassName="com.mysql.jdbc.Driver"
p:url="jdbc:mysql://localhost:3306/mydb"
p:username="root"
p:password="misterkaoli"/>
</beans>
前面的XML更简洁。但是,拼写错误是在运行时而不是设计时发现的,除非您使用IDE(例如IntelliJ IDEA或用于Eclipse的Spring工具)在创建bean定义时支持自动属性完成。
您还可以配置java.util.Properties实例,如下所示:
<bean id="mappings"
class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
<property name="properties">
<value>
jdbc.driver.className=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mydb
</value>
</property>
</bean>
Spring容器将
idref元素
所述idref元件是一个防错方法,主要通过将该容器中的另一个bean的id(将id作为一个字符串值传递-而不是引用)传递给
以下示例显示了如何使用它:
<bean id="theTargetBean" class="..."/>
<bean id="theClientBean" class="...">
<property name="targetName">
//此处将 theTargetBean 作为字符串传递给 theClientBean的targetName属性
//而不是将theTargetName这个bean的实例传递给targetName属性
<idref bean="theTargetBean"/>
</property>
</bean>
前面的bean定义代码段(在运行时)与以下代码段完全等效:
idref 等价的是 value标签 而不是 ref标签
<bean id="theTargetBean" class="..." />
<bean id="client" class="...">
<property name="targetName" value="theTargetBean"/>
</bean>
元素 的local属性在idref4.0 Bean XSD中不再受支持,因为它不再提供常规bean引用上的值。
升级到4.0模式时,将现有idref local引用更改为idref bean。
idref用法 可以校验传入的作为bean的id 会被用来校验当前id的bean存不存在
<idref></idref>元素常用的位置(至少在spring2.0之前的版本中)是在ProxyFactoryBean bean定义中的AOP拦截器配置中。
在指定拦截器名称时使用<idref></idref>元素可以防止拼写错误。
ref 对其他Bean的引用
ref元素是