本篇文章为你整理了Spring 后置处理器【1】(spring有哪些后置处理器接口)的详细内容,包含有spring后置处理器执行时机 spring有哪些后置处理器接口 springbean后置处理器 spring aop后置处理器 Spring 后置处理器【1】,希望能帮助你了解 Spring 后置处理器【1】。
Spring 后置处理器【1】 简单介绍
一句话:bean 在初始化前或初始化后的瞬间,我自己添加一些业务逻辑
bean 后置处理器类的内容
package com.hspedu.spring.bean;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
* @Author:PigBrother
* @Date:2022/9/22
* @Description:ToDo
public class MyBeanPostProcessor implements BeanPostProcessor {
* Before : 说明在bean 初始化前被调用
* @param bean 在ioc 容器中, 我配置的bean 对象
* @param beanName 在ioc 容器中,bean 的 id
* @return bean 返回处理后的bean 对象
* @throws BeansException
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
// 写业务逻辑:在bean 初始化前,修改其一些属性
System.out.println("postProcessBeforeInitialization() 方法被调用");
System.out.println("bean = " + bean);
System.out.println("beanName = " + beanName);
return bean;
* after : 说明在bean 初始化后被调用
* @param bean 在ioc 容器中, 我配置的bean 对象
* @param beanName 在ioc 容器中,bean 的 id
* @return bean 返回处理后的bean 对象
* @throws BeansException
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
// 写业务逻辑:在bean 初始化前,修改其一些属性
System.out.println("postProcessAfterInitialization() 方法被调用");
System.out.println("bean = " + bean);
System.out.println("beanName = " + beanName);
return bean;
代码解读
实现 BeanPostProcessor 接口
postProcessBeforeInitialization 和 postProcessAfterInitialization 两个方法
在两个方法中写业务逻辑
容器配置文件(即xml 文件)
@Test
public void beanProcessorTest() {
ApplicationContext ioc = new ClassPathXmlApplicationContext("beans02.xml");
House house = ioc.getBean("house", House.class);
System.out.println(house);
// 关闭ioc 容器
((ClassPathXmlApplicationContext)ioc).close();
Spring 后置处理器的简单应用
将容器内的所有bean的某一个属性的值统一改为另一个值
有 AOP 的一点影子了
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
* @Author:PigBrother
* @Date:2022/9/22
* @Description:ToDo
public class MyBeanPostProcessor implements BeanPostProcessor {
* Before : 说明在bean 初始化前被调用
* @param bean 在ioc 容器中, 我配置的bean 对象
* @param beanName 在ioc 容器中,bean 的 id
* @return bean 返回处理后的bean 对象
* @throws BeansException
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
// 写业务逻辑:在bean 初始化前,修改其一些属性
System.out.println("postProcessBeforeInitialization() 方法被调用; 将所有豪宅改成香港豪宅");
if (bean instanceof House) {
House house = (House) bean;
house.setName("香港豪宅");
return bean;
* after : 说明在bean 初始化后被调用
* @param bean 在ioc 容器中, 我配置的bean 对象
* @param beanName 在ioc 容器中,bean 的 id
* @return bean 返回处理后的bean 对象
* @throws BeansException
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
// 写业务逻辑:在bean 初始化前,修改其一些属性
System.out.println("postProcessAfterInitialization() 方法被调用");
System.out.println("bean = " + bean);
System.out.println("beanName = " + beanName);
return bean;
以上就是Spring 后置处理器【1】(spring有哪些后置处理器接口)的详细内容,想要了解更多 Spring 后置处理器【1】的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。