博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring-Spring Bean后置处理器
阅读量:6252 次
发布时间:2019-06-22

本文共 1777 字,大约阅读时间需要 5 分钟。

Spring Bean后置处理器

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

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

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

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

下面是HelloWorld.java的内容:

package com.tutorialspoint;public class HelloWorld {    private String message;    public String getMessage() {        return message;    }    public void setMessage(String message) {        this.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对象的后置处理程序方法。

这里是InitHelloWorld.java的内容:

package com.tutorialspoint;import org.springframework.beans.BeansException;import org.springframework.beans.factory.config.BeanPostProcessor;public class InitHellWorld implements BeanPostProcessor {    public Object postProcessBeforeInitialization(Object bean,String beanName) throws BeansException{        System.out.println("Before Initialization..." + beanName);        return bean;    }        public Object postProcessAfterInitialization(Object bean , String beanName) throws BeansException {        System.out.println("After Initialization..." + beanName);        return bean;    }}

下面是bean.xml的内容:

一旦你创建源代码和bean配置文件完成后,就可以运行该程序,如果你的应用程序一切都正常,将输出以下信息:

 

转载于:https://www.cnblogs.com/fangpengchengbupter/p/7797857.html

你可能感兴趣的文章
android基础—尺寸单位和屏幕适配
查看>>
小试 ScriptManager
查看>>
异常处理
查看>>
C/S模型之消息传输
查看>>
一道int与二进制加减题
查看>>
Java中输入判定的错误和纠正
查看>>
详解Nginx 13: Permission denied 解决方案
查看>>
InPlace Transition of a matrix
查看>>
Project Euler 26 Reciprocal cycles( 分数循环节 )
查看>>
做了几道简单的基础题,慢慢熟悉循环
查看>>
元素的多种延时等待(&页面的超时处理)
查看>>
ios 后台发送邮件之SKPSMTPMessage的使用
查看>>
JavaScript学习
查看>>
3014C语言_运算符
查看>>
202702算法_二分法查找
查看>>
Win10 UWP开发实现Bing翻译
查看>>
各种不同类型的类
查看>>
mvc4 -@Html.Partial,@Html.RenderPartial
查看>>
windows2012 r2 提高网速方法
查看>>
调试R代码中出现的常用的函数
查看>>