首页 > 其他分享 >Spring 后置处理器【1】

Spring 后置处理器【1】

时间:2022-09-22 14:33:57浏览次数:45  
标签:后置 Spring beanName System bean 处理器 println ioc out

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,beanName,System,bean,处理器,println,ioc,out
From: https://www.cnblogs.com/PigBrotherLove/p/16718015.html

相关文章

  • SpringMVC_共享数据
    HttpServletRequest共享数据@RequestMapping("/html1")publicStringtestServletAPI(HttpServletRequestrequest){request.setAttribute("id","1");retu......
  • SpringCloud-config分布式配置
    引入配置中心模块导入依赖<!--config--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cl......
  • SpringWeb项目越权漏洞以及解决方案
    https://blog.csdn.net/luostudent/article/details/124119997?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ER......
  • springboot前端多传参数报错、前端多传json字段报错
    Springboot多传参数导致JSONparseerror:Unrecognizedfiled...异常   默认情况下@RequestBody标注的对象必须包含前台传来的所有字段。如果没有包含前台传来的......
  • spring-session-data-redis解决多redis的问题
    1:参考这篇文章就好了https://github.com/yugabyte/redis-code-samples/blob/69fe87302de0c9524036c8476cbc5ed90e988165/spring-session/spring-session-data-redis/src/t......
  • SpringDataJpa使用原生sql的小坑
     1.jpa中的count小坑在SpringDataJpa中repository层的@Query注解内写原生sql,如果有传入Pageable分页查询,即分页数据的pageSize大于原生sql查询出的数据,程序会正......
  • Spring Boot 前端美化
    链接cssHtml<!DOCTYPEhtml><htmllang="en"xmlns:th="http://www.thymeleaf.org"><head><metacharset="UTF-8"><!--href是前端的引用,后端会不显示,为了方便......
  • 【全网最全】springboot整合JSR303参数校验与全局异常处理
    一、前言我们在日常开发中,避不开的就是参数校验,有人说前端不是会在表单中进行校验的吗?在后端中,我们可以直接不管前端怎么样判断过滤,我们后端都需要进行再次判断,为了安全。......
  • Java开发学习(三十五)----SpringBoot快速入门及起步依赖解析
    一、SpringBoot简介SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。使用了Spring框架后已经简化了我们的开发......
  • Spring入门程序
    ​ 三.入门程序1.创建maven项目先新建一个空工程  ​编辑​编辑   在工程中创建一个module:     ​编辑​编辑​编辑​编辑​编辑 2.......