Jav*_*fer 11 java spring annotations spring-mvc applicationcontext
我正在攻读Spring Core认证,并且根据提供的学习内容,我有这个问题,但我无法给出答案.
为什么必须在@Configuration注释类中使用默认构造函数?
我没有将任何构造函数声明为@Configuration批注注释的配置类.默认构造函数是超类继承的构造函数?或者是什么?为什么我必须有一个默认的构造函数,我不能覆盖它?
TNX
Voj*_*cka 23
根据官方的spring javadoc,spring @Configuration注释类需要有默认的no-arg构造函数
@Configuration类必须具有default/no-arg构造函数,并且不能使用@Autowired构造函数参数.任何嵌套配置类都必须是静态的
原因是spring使用CGLIB来代理@Configuration类,并且Spring中存在限制,在版本4之前用CGLIB代理的类需要具有默认的no-args构造函数.
在Spring 4之前,基于CGLIB的代理类需要一个默认构造函数.这不是CGLIB库的限制,而是Spring本身.幸运的是,从春季开始,这不再是一个问题.基于CGLIB的代理类不再需要默认构造函数.
归档时间: |
|
查看次数: |
9350 次 |
最近记录: |