Spring Bean 后置处理器


本文整理自网络,侵删。

Spring——Bean 后置处理器

Bean 后置处理器允许在调用初始化方法前后对 Bean 进行额外的处理。

?BeanPostProcessor ?接口定义回调方法,你可以实现该方法来提供自己的实例化逻辑,依赖解析逻辑等。你也可以在 ?Spring? 容器通过插入一个或多个 ?BeanPostProcessor? 的实现来完成实例化,配置和初始化一个?bean?之后实现一些自定义逻辑回调方法。

你可以配置多个 ?BeanPostProcessor ?接口,通过设置 ?BeanPostProcessor ?实现的? Ordered ?接口提供的? order? 属性来控制这些? BeanPostProcessor? 接口的执行顺序。

?BeanPostProcessor? 可以对? bean?(或对象)实例进行操作,这意味着 ?Spring IoC? 容器实例化一个 ?bean? 实例,然后 ?BeanPostProcessor? 接口进行它们的工作。

注意:

?ApplicationContext? 会自动检测由 ?BeanPostProcessor? 接口的实现定义的 ?bean?,注册这些? bean? 为后置处理器,然后通过在容器中创建? bean?,在适当的时候调用它。

在你自定义的? BeanPostProcessor? 接口实现类中,要实现以下的两个抽象方法  ?BeanPostProcessor.postProcessBeforeInitialization(Object, String)? 和  ?BeanPostProcessor.postProcessAfterInitialization(Object, String)? 和,注意命名要准确

否则会出现: ?“ The type InitHelloWorld must implement the inherited abstract method BeanPostProcessor.postProcessBeforeInitialization(Object, String) ”?之类的错误

例子:

下面的例子显示如何在 ?ApplicationContext? 的上下文中编写,注册和使用 ?BeanPostProcessor?。

我们在适当的位置使用 Eclipse IDE,然后按照下面的步骤来创建一个 ?Spring ?应用程序:

步骤 描述
1 创建一个名称为 ?SpringExample? 的项目,并且在创建项目的? src ?文件夹中创建一个包 ?com.tutorialspoint?
2 使用? Add External JARs ?选项,添加所需的? Spring? 库,解释见 ?Spring Hello World Example ?章节。
3 在 ?com.tutorialspoint ?包中创建 Java 类 ?HelloWorld?、?InitHelloWorld? ?和 ?MainApp?
4 在? src ?文件夹中创建? Beans ?配置文件? Beans.xml?。
5 最后一步是创建的所有 Java 文件和 Bean 配置文件的内容,并运行应用程序,解释如下所示。

这里是 HelloWorld.java 文件的内容:

package com.tutorialspoint;
public class HelloWorld {
  private String message;
  public void setMessage(String message){
    this.message = message;
  }
  public void getMessage(){
    System.out.println("Your Message : " + message);
  }
  public void init(){
    System.out.println("Bean is going through init.");
  }
  public void destroy(){
    System.out.println("Bean will destroy now.");
  }
}

这是实现? BeanPostProcessor ?的非常简单的例子,它在任何 ?bean? 的初始化的之前和之后输入该 ?bean? 的名称。你可以在初始化 ?bean ?的之前和之后实现更复杂的逻辑,因为你有两个访问内置 ?bean? 对象的后置处理程序的方法。

阅读剩余部分

相关阅读 >>

spring bean 生命周期

spring beanfactory 容器

spring @qualifier 注释

spring 中 sql 的存储过程

spring 注入集合

spring jsr-250 注释

spring 基于构造函数的依赖注入

spring mvc hello world 例子

spring 自动装配 bytype

spring bean 后置处理器

更多相关阅读请进入《Spring IoC》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...