Spring4:没有默认构造函数的基于CGLIB的代理类

Spring 4开始,基于CGLIB的代理类不再需要默认构造函数,这允许使用构造函数注入。文章探讨了这一变化如何影响代码,以及在Spring 3中遇到的问题和解决方案,包括利用Objenesis库的支持。
摘要由CSDN通过智能技术生成

在Spring中,如果要代理的目标对象的类未实现任何接口,则将创建基于CGLIB的代理。 在Spring 4之前,基于CGLIB的代理类需要默认的构造函数。 这不是CGLIB库的限制,而是Spring本身。 幸运的是,从Spring 4开始,这不再是问题。 基于CGLIB的代理类不再需要默认的构造函数。 这如何影响您的代码? 让我们来看看。

依赖注入的惯用法之一是构造函数注入。 它通常在需要注入的依赖项时使用,并且在启动对象后不得更改。 在本文中,我不会讨论为什么和何时应该使用构造函数依赖项注入。 我假设您在代码中使用了这个习惯用法,或者您考虑使用它。 如果您有兴趣了解更多信息,请参见本文底部的资源部分。

不含豆的施工剂注射

具有以下协作者:

package pl.codeleak.services;

import org.springframework.stereotype.Service;

@Service
public class Collaborator {
    public String collaborate() {
        return "Collaborating";
    }
}

我们可以通过构造函数轻松注入它:

package pl.codeleak.services;

import org.spri
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值