ClickHouse java开发环境变量 webstorm汉化包 VMware 劝酒文化 pdf session handlebarsjs vue前端 vue添加class jquery第一个子元素 arraylist删除指定元素 pcie高速固态硬盘 不用u盘装双系统 java使用redis oracle可视化工具 svn查看历史版本 python中get函数 python正则匹配 python查找指定字符 windows安装python环境 java接口类 java初级 java数组 java集合框架图 java连接sql java配置jdk php开发实例 摩斯密码翻译 图片链接生成器 ad下载 max电池容量 彩虹岛小草黑暗之矛 无限视距 steam怎么卸载 tomcat修改端口 瑞兹技能 欧洲卡车模拟2存档 Mapper 黑道圣徒4去马赛克补丁
当前位置: 首页 > 学习教程  > 编程语言

Spring IOC容器提供的扩展接口

2021/1/28 23:00:22 文章标签:

前言 了解Spring容器的扩展点可以帮助我们完成特定任务,如何精通 Spring 就看你有没有掌握好 Spring 有哪些扩展点。 Spring Ioc 容器主要有这么几个拓展点:BeanFactoryPostProcessor和BeanPostProcessor,他们分别是在构建 BeanFactory 和构建…

前言

了解Spring容器的扩展点可以帮助我们完成特定任务,如何精通 Spring 就看你有没有掌握好 Spring 有哪些扩展点。 Spring
Ioc 容器主要有这么几个拓展点:BeanFactoryPostProcessor和BeanPostProcessor,他们分别是在构建
BeanFactory 和构建 Bean 对象时调用;还有就是 InitializingBean 和 DisposableBean,
他们分别是在 Bean 实例创建和销毁时被调用。用户可以实现这些接口中定义的方法,Spring 就会在适当的时候调用他们。还有一个是
FactoryBean 他是个特殊的 Bean,这个 Bean 可以被用户更多的控制

1. BeanPostProcessor简介

BeanPostProcessor是Spring IOC容器给我们提供的一个扩展接口。接口声明如下:

public interface BeanPostProcessor {
    @Nullable
    default Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        return bean;
    }

    @Nullable
    default Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        return bean;
    }
}

运行顺序

=Spring IOC容器实例化Bean=
=调用BeanPostProcessor的postProcessBeforeInitialization方法=
=调用bean实例的初始化方法=
=调用BeanPostProcessor的postProcessAfterInitialization方法=

2. BeanFactoryPostProcessor简介

BeanFactoryPostProcessor接口和BeanPostProcessor原理一致,Spring提供了对BeanFactory进行操作的处理器BeanFactoryProcessor,简单来说就是获取容器BeanFactory,这样就可以在真正初始化bean之前对bean做一些处理操作。bean工厂的bean属性处理容器,说通俗一些就是可以管理我们的bean工厂内所有的beandefinition(未实例化)数据,可以随心所欲的修改属性。
简单来说就是在工厂里所有的bean被加载进来后但是还没初始化前,对所有bean的属性进行修改也可以add属性值。

@FunctionalInterface
public interface BeanFactoryPostProcessor {
    void postProcessBeanFactory(ConfigurableListableBeanFactory var1) throws BeansException;
}

3. InitializingBean

InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是继承该接口的类,在初始化bean的时候都会执行该方法。

public interface InitializingBean {
    void afterPropertiesSet() throws Exception;
}

4. DisposableBean

在Bean生命周期结束前调用destory()方法做一些收尾工作

public interface DisposableBean {
    void destroy() throws Exception;
}

Bean的生命周期

在传统的Java应用中,bean的生命周期很简单,使用Java关键字 new 进行Bean 的实例化,然后该Bean
就能够使用了。一旦bean不再被使用,则由Java自动进行垃圾回收。

相比之下,Spring管理Bean的生命周期就复杂多了,正确理解Bean 的生命周期非常重要

在这里插入图片描述


本文链接: http://www.dtmao.cc/news_show_650130.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?