通过Spring的ApplicationContextAware接口实现多继承

本文介绍了一种在Spring框架中实现多通道支付的方法。通过创建抽象类并定义多通道接口,利用Spring容器自动调用setApplicationContext()方法,实现不同支付方式的统一管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前些日子,因为项目需要开发多通道支付,但是多通道只有一个入口,所以必须实现多继承,现在总结一下:

1、首先先新建一个抽象类,里面包含两个抽象方法:

2、多通道的各个类,分别继承这个抽象类,实现这两个方法

3、新建一个Spring的工厂类,实现ApplicationContextAware接口(这个才是重头戏)

看下ApplicationContextAware源码:

很明显,Aware是一个空接口,ApplicationContextAware接口只有一个方法,所以我们只复写setApplicationContext()方法即可。

1)实现了该接口之后,Spring容器会自动检测所有的Bean,如果发现某个Bean实现了ApplicationContextAware接口,Spring容器就会在创建了该Bean之后,自动调用该Bean的setApplicationContextAware()方法。

2)该方法中有一个getBeansOfType(Class<T> type)方法,该方法会把所有type类型的类实例化,放进map中。

3)然后我们可以遍历这个map,根据我们自己设置的key的生成规则,放进自己创建的map中,便于后期获取。

4)getAuthMode(String authType)方法便是从自己创建的map中获取实例。

5)获取到相应实例之后,就可以调用不同类中的业务逻辑方法了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值