정말 이상한 문제가 있습니다. 나는 수업Java/cglib 메소드를 무시할 때 super 만 호출합니까?
public class A extends ...{
}
public class B extends A{
@Override
@PreAuthorize(...)
public String doMagic(){
String v = super.doMagic();
doSomeOtherThings();
...
return v;
}
}
을 확장 여러 클래스가 있었다, 그래서 나는에 그것을 리팩토링 : 내가 가진
...
public class A extends ...{
@Override
public String doMagic(){
String v = super.doMagic();
doSomeOtherThings();
...
return v;
}
}
public class B extends A{
@Override
@PreAuthorize(...)
public String doMagic(){
return super.doMagic();
}
}
하지만 지금은 흥미로운 일이 일어난 액세스 권한을 확인하는 테스트 (PreAuthorize 기반), IntelliJ에서 제대로 실행되지만 maven으로 실행될 때 실패합니다. B의 메소드가 무시되거나 주석이 처리되지 않는 것 같습니다. 첫 번째 버전에서는 테스트가 두 경우 모두 통과합니다.
어떤 아이디어가 있었습니까? 이 .. 문제가 CGLIB 관련이있을 수 있다는
을 보인다는 이러한 경우 다시 작동 : 프록시를 만들려면 : 당신이 제공 한 정보와
public class A extends ...{
protecte String doMagic2(){
String v = super.doMagic();
doSomeOtherThings();
...
return v;
}
}
public class B extends A{
@Override
@PreAuthorize(...)
public String doMagic(){
return doMagic2();
}
}
당신은 당신의 아이디와 아이디에서 같은 jdk를 고소하고 있습니까? –
A가 확장하는 클래스에 대한 자세한 내용을 게시해야합니다. 도움이 될 수도 있습니다. – djangofan
A는 비즈니스 서비스를 확장하며 액세스 제어와 관련이 없습니다. – zibi