该元素用来将bean中指定属性的值设置为对容器中的另外一个bean的引用。如前所述,该引用bean将被作为依赖注入,而且在注入之前会被初始化(如果是singleton bean则已被容器初始化)。尽管都是对另外一个对象的引用,但是通过id/name指向另外一个对象却有三种不同的形式,不同的形式将决定如何处理作用域及验证。
第一种形式也是最常见的形式是通过使用<ref/>标记指定bean属性的目标bean,通过该标签可以引用同一容器或父容器内的任何bean(无论是否在同一XML文件中)。XML 'bean'元素的值既可以是指定bean的id值也可以是其name值。
<ref bean="someBean"/>
第二种形式是使用ref的local属性指定目标bean,它可以利用XML解析器来验证所引用的bean是否存在同一文件中。local属性值必须是目标bean的id属性值。如果在同一配置文件中没有找到引用的bean,XML解析器将抛出一个例外。如果目标bean是在同一文件内,使用local方式就是最好的选择(为了尽早地发现错误)。
<ref local="someBean"/>
分享到:
相关推荐
<!-- 定时任务 方式2(集群方式)--> <bean id="timerJob" class="job.TimerJob"> </bean> <bean id="timerJobProxy" ... <ref local="timerJobTrigger" /> </list> </property> </bean>
<property name="dataSource"><ref bean="dataSource" /></property> <!-- 配置映射文件 --> <property name="mappingResources"> <list> <value>com/alonely/vo/User.hbm.xml</value> </list> </property> ...
<ref local="dataSource" /> </property> <property name="mappingResources"> <list> <value>com/bean/Tuser.hbm.xml</value> </list> </property> <property name="hibernateProperties"> ...
<ref local="sessionFactory"/> </property> </bean> ``` 这里配置了一个`HibernateTransactionManager`实例,通过`sessionFactory`属性关联了一个Hibernate的`SessionFactory`。 ##### DAO层的事务代理配置 ``...
<value>classpath:/org/testa/hibernate/model/</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop> ...
<ref local="transactionManager"/> </property> <property name="transactionAttributes"> <props> <prop key="save*">PROPAGATION_REQUIRED</prop> <prop key="insert*">PROPAGATION_REQUIRED</prop> <prop...
<ref local="sessionFactory"/> </constructor-arg> </bean> ``` - **HibernateTemplate**:提供了丰富的API来简化Hibernate的操作,如增删查改等。 - **构造函数注入**:通过`<constructor-arg>`将SessionFactory...
<artifactId>cxf-rt-transports-local</artifactId> <version>${cxf.version}</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http</artifactId> ...
<ref local="sessionFactory" /> </constructor-arg> </bean> ``` DAO(Data Access Object)层的配置,将SessionFactory注入到UserDAO中: ```xml <bean id="userDAO" class="com.alonely.dao.UserDAO"> ...
<ref local="sessionFactory"/> </constructor-arg> </bean> ``` - **`<bean>`标签**:定义了一个名为`hibernateTemplate`的bean实例,其类为`org.springframework.orm.hibernate3.HibernateTemplate`。 - **构造...
<ref local="jotm"/> </property> </bean> <!-- 数据源A --> <bean id="dataSourceA" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown"> <property name="dataSource"> ...
<ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> ${hibernate.dialect} </prop> <prop key="hbm2ddl.auto">...
- `<property name="dataSource"><ref bean="dataSource"/></property>`:将 `dataSource` 注入到 `sessionFactory` 中。 - `<property name="mappingResources"><list><value>com/alonely/vo/User.hbm.xml</value...
- `<ref>`标签用于引用UserService Bean。 #### 总结 通过上述解析可以看出,`applicationContext.xml`文件不仅定义了各种Bean,还负责管理这些Bean之间的依赖关系,从而实现了IoC(Inversion of Control,控制...
3. 使用<property>标签来配置Bean的属性,例如:<property name="userDAO"> <ref local="userDAO" /> ApplicationContext.xml文件是Spring应用程序中的核心配置文件,它用于定义和配置各种Bean,并管理Bean之间的...
<ref local="sessionFactory"/> </constructor-arg> </bean> ``` - **`<constructor-arg>`标签**:用于构造函数注入。 **5. DAO与Service配置** ```xml <!-- 把DAO注入给Session工厂 --> <bean id="userDAO" ...
<ref local="sessionFactory"/> </property> </bean> ``` 2. **服务层Bean的配置** 通常情况下,业务逻辑会封装在一个或多个服务层Bean中。例如,以下代码片段定义了一个名为`fundService`的服务层Bean,它...
java类代码: ...<ref local="electriTrigger" /> </list> </property> </bean> 我用的spring.jar,有些低版本的Spring可能找不到.quartz.QuartzJobBean类, 另外加入一个quartz-all-1.6.0.jar包就OK
<ref local="sessionFactory"/> </constructor-arg> </bean> ``` 这样,开发人员就可以利用`HibernateTemplate`提供的便捷方法来执行数据库操作,如`load()`、`get()`、`save()`、`delete()`等。 #### 六、DAO与...