cglib编译器jdk遵从性

时间:2010-11-17 14:52:46

标签: java spring java-ee aop cglib

我在同事的盒子上收到一个奇怪的错误。 CGLib是为Spring AOP日志记录自动代理服务类,并且在运行时它表示“未解决的编译错误:必须通过cglib代理类在快速类上覆盖超类方法”。

在违规类中,我在实现接口时使用@override注释,我知道它在jdk 1.6中支持但不支持1.5。 CGLib自动代理该实现类。

然而,它在jdk_1.6_17的盒子上工作正常,但在jdk_1.6_10上没有。

但是,他可以使用maven正确编译项目,maven使用相同的jdk。 删除@Override注释会修复运行时cglib错误,但这很奇怪吗?

cglib使用什么编译器进行自动代理,这可能是jdk_1.6_10中的错误还是还有其他我缺少的东西?

使用spring 3.0.4,jboss 5.10,spring security 3.0.3

基本上,该类在spring-security中实现AuthenticationUserDetailsS​​ervice。

违规方法签名:

@Override
public UserDetails loadUserDetails(Authentication auth) throws UsernameNotFoundException;

UserDetails是一个spring-security接口,Authentication也是如此。

1 个答案:

答案 0 :(得分:0)

好的,想通了。我明确地将cglib 2.2引入了pom.xml,并且spring-flex引入了2.1_03,这是从2005年开始的。出于某种原因,我的盒子最终使用了新的盒子,而我的同事最终使用了旧的。

任何人都知道为什么特定的人会先加载?