Spring 后置处理器【1】(spring有哪些后置处理器接口)

  本篇文章为你整理了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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: