通过实现BeanFactoryPostProcessor,重写产品中的方法。

简介: 通过实现BeanFactoryPostProcessor,重写产品中的方法。

 背景:项目上要基于产品的功能进行一些定制化的开发,对一些功能的操作添加上项目上独特的业务逻辑,这就涉及到了

要对产品的接口进行重写。以下为实现BeanFactoryPostProcessor,对ioc容器中的beanDefinition进行修改,已达到项目上能够重写产品自带的一些类的方法的目的。

实现步骤:

1.定义自己的业务逻辑类,可以继承自产品的相应业务逻辑类。

public class RoleResourceServiceImpl extends RoleResourceService {
    @Override
    public void updateResource(String roleId, String systemId, String[] resIds) {
    // 调用父类即产品的方法
        super.updateResource(roleId, systemId, resIds);
        // 增加项目上的业务逻辑     
    }
}

image.gif

2. 实现BeanFactoryPostProcessor类,重写postProcessBeanFactory方法。

@Component
public class UpdateBeanDefinitionPostProcessor implements BeanFactoryPostProcessor {
    @Override
    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) {
        try {       
            //让ioc容器将原来的roleResourceService注册为RoleResourceServiceImpl的实现
            GenericBeanDefinition roleResourceServiceBdf = (GenericBeanDefinition) beanFactory.getBeanDefinition("roleResourceService");
            roleResourceServiceBdf.setBeanClass(RoleResourceServiceImpl.class);
        } catch (NoSuchBeanDefinitionException e) {
            //
        }
    }
}

image.gif


目录
打赏
0
0
0
0
2
分享
相关文章
重写、抽象类、接口
Java编程涉及重载、重写、final、super、抽象类、static和接口。方法重载允许同名方法,但参数列表需不同;方法重写在子类中重新定义父类方法,保持相同签名。final修饰的类不可继承,final方法不可重写。抽象类包含抽象方法,不能实例化,子类必须重写抽象方法。static修饰静态属性和方法,与对象无关。接口是抽象类的极致形式,包含常量和抽象方法,实现接口需重写方法。Java中,接口可多继承,而类单继承。
53 0
|
9月前
类的无参方法
类的无参方法
从工厂方法到注解的小例子
这里的前几个过程就不符代码了,请读者自行补充;只附上第四版,通过注解替换工厂方法实现自动化的小例子
Spring源码分析之BeanFactoryPostProcessor调用过程(二)
Spring源码分析之BeanFactoryPostProcessor调用过程
121 0
Spring源码分析之BeanFactoryPostProcessor调用过程(一)
Spring源码分析之BeanFactoryPostProcessor调用过程
117 0
Spring源码(八)-构造方法实例化Bean-createBeanInstance
各位小伙伴好,这是 Spring 源码系列的第八篇文章。本篇篇幅较长(五千八百字),建议收藏慢慢品尝。
687 1
C++类中在构造器中调用本类的另外构造器
C++类中在构造器中调用本类的另外构造器
104 0
子类重写父类方法|学习笔记
快速学习子类重写父类方法,先来介绍子类重写父类方法。多态其实就是一种子类重写父类的方法。

热门文章

最新文章