Spring 核心技术(5)】的更多相关文章

本文针对自动装载的一些注解进行描述. 基于注解的容器配置 @Required注解 @Required注解需要应用到Bean的属性的setter方法上面,如下面的例子: public class SimpleMovieLister { private MovieFinder movieFinder; @Required public void setMovieFinder(MovieFinder movieFinder) { this.movieFinder = movieFinder; } //…
前文已经描述了Bean的作用域,本文将描述Bean的一些生命周期作用,配置还有Bean的继承. 定制Bean 生命周期回调 开发者通过实现Spring的InitializeingBean和DisposableBean接口,就可以让容器来管理Bean的生命周期.容器会调用afterPropertiesSet()前和destroy()后才会允许Bean在初始化和销毁Bean的时候执行一些操作. JSR-250的@PostConstruct和@PreDestroy注解就是现代Spring应用生命周期回…
前文概述了Spring的容器,Bean,以及依赖的一些信息,本文将描述一下Bean的作用域 Bean的作用域 当开发者定义Bean的时候,同时也会定义了该如何创建Bean实例.这些具体创建的过程是很重要的,因为只有通过对这些过程的配置,开发者才能创建实例对象. 开发者不仅可以控制注入不同的依赖到Bean之中,也可以配置Bean的作用域.这种方法是非常强大而且弹性也非常好的.开发者可以通过配置来指定对象的作用域,而不用在Java类层次上来配置.Bean可以配置多种作用域. Spring框架支持5种…
前面两篇文章描述了IoC容器中依赖的概念,包括依赖注入以及注入细节配置.本文将继续描述玩全部的依赖信息. 使用 depends-on 如果一个Bean是另一个Bean的依赖的话,通常来说这个Bean也就是另一个Bean的属性之一.多数情况下,开发者可以在配置XML元数据的时候使用<ref/>标签.然而,有时Bean之间的依赖关系不是直接关联的.比如:需要调用类的静态实例化器来触发,类似数据库驱动注册.depends-on属性会使明确的强迫依赖的Bean在引用之前就会初始化.下面的例子使用dep…
接上篇:Spring 核心技术(2) version 5.1.8.RELEASE 1.4 依赖 典型的企业应用程序不会只包含单个对象(或 Spring 术语中的 bean).即使是最简单的应用程序也是由很多对象进行协同工作,以呈现出最终用户所看到的有条理的应用程序.下一节将介绍如何从定义多个独立的 bean 到实现对象之间相互协作从而实现可达成具体目标的应用程序. 1.4.1 依赖注入 依赖注入(DI)是一钟对象处理方式,通过这个过程,对象只能通过构造函数参数.工厂方法参数或对象实例化后设置的属…
接上篇:Spring 核心技术(1) version 5.1.8.RELEASE 1.3 Bean概述 Spring IoC 容器管理一个或多个bean,他们都是根据提供的配置元数据(例如 XML 中<bean/>定义)创建的. 在容器内部,这些 bean 定义以 BeanDefinition 对象进行表示,其中包含(以及其他信息)以下元数据: 包限定的类名:通常是 bean 的实际实现类 Bean 行为配置元素,定义 bean 在容器中的行为方式(范围,生命周期回调等) 引用 bean 执行…
接上篇:Spring 核心技术(3) version 5.1.8.RELEASE 1.4.2 依赖关系及配置详情 如上一节所述,你可以将 bean 属性和构造函数参数定义为对其他托管 bean(协作者)的引用,或者作为内联定义的值.Spring 基于 XML 的配置元数据为此目的支持子元素<property/>和<constructor-arg/>. 直接值(基本类型,字符串等) <property/>元素的 value 属性指定一个属性或构造器参数为可读的字符串.Sp…
接上篇:Spring 核心技术(4) version 5.1.8.RELEASE 1.4.5 自动装配协作者 Spring 容器可以自动连接协作 bean 之间的关系.你可以让 Spring 通过检查 ApplicationContext 中的内容自动为 bean 解析协作者(其他bean).自动装配具有以下优点: 自动装配可以显着减少指定属性或构造函数参数的需要.(在本章其他地方讨论的其他机制,如bean模板 ,在这方面也很有价值.) 自动装配可以随着对象的演变更新配置.例如,如果需要向类添加…
接上篇:Spring 核心技术(5) version 5.1.8.RELEASE 1.5 Bean 作用域 创建 bean 定义时,你创建了一种用于创建 bean 定义中定义的类实例的方法.bean定义的设想是一个很重要的方法,因为它意味着,与一个类一样,你可以从以一种方式创建许多对象实例. 你不仅可以控制要插入到以特定 bean 定义创建的对象中的各种依赖项和配置值,还可以控制以特定bean定义创建的对象的作用域.这种方法功能强大且灵活,因为你可以选择通过配置创建的对象的作用域,而不必在 Ja…
接上篇:Spring 核心技术(6) version 5.1.8.RELEASE 1.6 定制 Bean 的特性 Spring Framework 提供了许多可用于自定义 bean 特性的接口.本节将它们分组如下: 生命周期回调 ApplicationContextAware 和 BeanNameAware 其他 Aware 接口 1.6.1 生命周期回调 要与容器的 bean 生命周期管理进行交互,可以实现 Spring InitializingBean 和 DisposableBean 接口…