美文网首页
关于spring加载类的改写方式

关于spring加载类的改写方式

作者: 怕水河马 | 来源:发表于2019-03-14 13:57 被阅读0次

    spring的加载类的注入或者改写,有几种不同的方式。

    1、直接实现某些接口,获取对象,进而加入到spring某些队列的正常序列中,或者修改其执行方式,最典型的就是初始化BeanPostProcessor和InstantiationAwareBeanPostProcessorAdapter

    具体操作这里不详述,需要的时候可以自行百度。

    2、添加到spring的factoriesLoader中,利用其load规则进行注入

    /resources/META-INF/spring.factories

    这个文件里面描述的文件会作为springboot context最初加载的类工厂进行加载,所以,如果想覆盖或者改写某些加载类的,可以在你自己的jar或者项目中,增加此路径下的配置,覆盖对应类的接口实现即可。

    例如

    org.springframework.boot.autoconfigure.EnableAutoConfiguration=\

    com.test.TestEnableAutoCongiuration

    这种改写的目的,更多的在于某些spring的类的功能不满足你的诉求,你希望基于某些接口或者类改写为自己的实现时,这样的处理方式是非常便利的。

    3、java的Instrument接口。

    这是一个比较粗暴的做法,但是非常有效,一般在进行底层记录、过滤等其他操作时,可以考虑这种方式,直接在class进入jvm之前对其进行二进制内容修改。

    相关文章

      网友评论

          本文标题:关于spring加载类的改写方式

          本文链接:https://www.haomeiwen.com/subject/vmmqmqtx.html