Spring(3.2.3) - Beans(11): depends-on

大多数情况下,Bean 之间的依赖非常直接:被依赖的 Bean 作为属性。在 XML 配置文件中最常见的就是使用 <ref/> 元素。在一些特殊情况下,Bean 之间的依赖不够直接。比如,某个类的静态初始化块中使用了其他的 Bean,如果其他 Bean 还没实例初始化,将会引发异常。depends-on 属性可以在当前的 Bean 实例初始化之前,强制一个或多个依赖的 Bean 先实例初始化。

<bean id="beanOne" class="ExampleBean" depends-on="manager"/>
<bean id="manager" class="ManagerBean" />

上述的示例中,manager Bean 会先于 beanOne Bean 实例初始化。如果要表达对多个 Bean 的依赖,可以用逗号、空格、分号等分隔符将多个 Bean 的名字隔开。

<bean id="beanOne" class="ExampleBean" depends-on="manager,accountDao">
<property name="manager" ref="manager" />
</bean>

<bean id="manager" class="ManagerBean" />
<bean id="accountDao" class="x.y.jdbc.JdbcAccountDao" />
时间: 2024-10-15 14:37:55

Spring(3.2.3) - Beans(11): depends-on的相关文章

spring第一课,beans配置(中)——自动装配

bean的配置除了有手动配置,还有自动装配这一说法,具体怎么操作,如下代码事例. 自动装配可根据bean的名称与配置bean属性名称的对应进行配置,也可根据bean的类型与配置bean属性的类型进行配置. 1.自动配置 byName person类 1 package com.org.spring.beans; 2 3 public class Person { 4 private String name; 5 private int age; 6 private Car car; 7 8 @O

Spring之 Auto-Wiring All Beans of Compatible Type

Auto-Wiring All Beans of Compatible Type @Autowired 注解按类型(type)依赖入住的时候,可以把类型兼容的所有类注入到数组.链表.map等集合数据结构中.如:mybatis中TypeHandler为例: package com.doctor.practice01; import java.sql.CallableStatement; import java.sql.PreparedStatement; import java.sql.Resul

Spring(3.2.3) - Beans(8): 基于 Annotation 的配置

除了基于 XML 的配置外,Spring 也支持基于 Annotation 的配置.Spring 提供以下介个 Annotation 来标注 Spring Bean: @Component:标注一个普通的 Spring Bean @Controller:标注一个控制器组件类 @Service:标注一个业务逻辑组件类 @Repository:标注一个 DAO 组件类 基于 Annotation 配置的示例 DAO 组件以 @Repository 标注: public interface UserD

Spring(3.2.3) - Beans(10): 生命周期

Spring 容器可以管理 singleton 作用域 Bean 的生命周期,容器能够跟踪 Bean 实例的创建.销毁.管理 Bean 生命周期行为主要有两个时机: 注入 Bean 的依赖关系之后 即将销毁 Bean 之间 依赖关系注入之后的行为 有三种方式可以在 Bean 的所有属性设置成功后执行特定的行为: 实现 org.springframework.beans.factory.InitializingBean 接口 使用 init-method 属性 使用 @PostConstruct

Spring(3.2.3) - Beans(7): 延迟实例化

默认情况下,Spring IoC 容器启动后,在初始化过程中,会以单例模式创建并配置所有使用 singleton 定义的 Bean 的实例.通常情况下,提前实例化 Bean 是可取的,因为这样在配置中的任何错误就会很快被发现,否则可能要几个小时甚至几天后才会被发现. 有时候你可能并不想在 ApplicationContext 初始化时提前实例化某个 singleton 定义的 Bean,那么你可以将改 Bean 设置为延迟实例化.一个延迟实例化的 Bean 在第一次被请求的时候,Spring 容

Spring MVC系列:(11)返回JSON

1.引入jar包 jackson-core-asl-1.9.11.jar jackson-mapper-asl-1.9.11.jar 2.配置springmvc.xml     <!-- 基于注解的适配器 -->     <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">         <property name=&qu

Spring 源码阅读&ndash;beans

最近买了本书,来大概学习写spring源码 一:先来段代码来测试一下. 照书上的先来试试 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schem

Spring(3.2.3) - Beans(9): @Resoure &amp; @Autowired

@Resource 和 @Autowired 都是用来装配依赖的,它们之间有些异同. @Resoure @Resource 是 JSR-250 规范的注解. @Resource 可以标注在字段.方法上,但不可以标注在构造方法上. 默认情况下,@Resource 按依赖的名称进行装配.@Resource 与 <property/> 元素的 ref 属性的效果相同. @Resource 的装配顺序 如果同时指定了 name 和 type 属性,则从 Spring 容器中查找唯一匹配的 Bean 进

Spring(3.2.3) - Beans(12): 属性占位符

使用属性占位符可以将 Spring 配置文件中的部分元数据放在属性文件中设置,这样可以将相似的配置(如 JDBC 的参数配置)放在特定的属性文件中,如果只需要修改这部分配置,则无需修改 Spring 配置文件,修改属性文件即可.下面是一个属性占位符的示例. Spring  配置: <!-- 将配置值具体化到一个属性文件中,并且使用属性文件的key名作为占位符 --> <context:property-placeholder location="classpath:jdbc.p