com.xmy.package 패키지와 그 하위 패키지 내의 모든 클래스에 대한 모든 메소드 호출을 가로 채기 위해 pointcut 표현식을 생성하려고합니다. org.springframework.aop.framework.AopConfigException : 내 XML은, 코드에 의한 Spring AOP Poincut 표현
아래 보이는 클래스 ...... .. 의 CGLIB의 서브 클래스를 생성 할 수 없습니다. . . . . 원인 : java.lang.IllegalArgumentException : 슈퍼 클래스에는 null 생성자가 없지만 인수가 제공되지 않았습니다.at net.sf.cglib.proxy.Enhancer.emitConstructors (Enhancer.java:721) at net.sf.cglib.proxy .Enhancer.generateClass (Enhancer.java:499) at net.sf.cglib.transform.TransformingClassGenerator.generateClass (TransformingClassGenerator.java:33) at net.sf.cglib.core.DefaultGeneratorStrategy.generate (DefaultGeneratorStrategy.java:25)) at net.sf.cglib.core.AbstractClassGenerator.create (AbstractClassGenerator.java:216) at net.sf.cglib.proxy.Enhancer.createHelper (Enhancer.java:377) at net.sf.cglib.proxy .Enhancer.create (Enhancer.java:285) at org.springframework.aop.framework.Cglib2AopProxy.getPr 옥시 (Cglib2AopProxy.java:201)<aop:config> <aop:pointcut id="allCalls" expression="within(com.xmy.package..*)" /> <aop:aspect ref="loggingService"> <aop:around method="logMethodFlow" pointcut-ref="allCalls" /> </aop:aspect> </aop:config>
그러나 특정 클래스 (아래처럼)에 대해 pointcut 표현식을 사용하면 올바르게 작동합니다.
<aop:config>
<aop:pointcut id="classCalls" expression="execution(* com.xmy.package.MyClass.*(..))" />
<aop:aspect ref="loggingService">
<aop:around method="logMethodFlow" pointcut-ref="classCalls" />
</aop:aspect>
</aop:config>
모든 메소드 호출을 특정 패키지 및 하위 패키지에 기록하는 방법을 알려주십시오.