2011-11-11 3 views
1

저는 스프링 AOP의 around advice를 사용하여 트랜잭션의 처리 시간을 캡처합니다. 나는 문제가이 thread의 도움으로 무엇인지 확인스프링 AOP - 프록시 생성 오류

error creating bean "coreMessageResourceAccesor" 
    Could not generate CGLIB subclass of class 
    [class org.springframework.context.support.MessageSourceAccessor]: 
Common causes of this problem include using a final class or a non-visible class; 
nested exception is java.lang.IllegalArgumentException: 
    Superclass has no null constructors but no arguments were given 

나는 응용 프로그램을 시작하는 동안 다음과 같은 오류를 받고 있어요. 하지만 빈 자사는 스프링 클래스를 사용하기 때문에 그 클래스에는 인수 생성자 아래

을하지 않습니다 & 세터를 기반으로 주입을 사용하도록 구성 coreMessageResourceAccesor 콩입니다 변경할 수 없습니다

<bean id="coreMessageSourceAccessor" 
     class="org.springframework.context.support.MessageSourceAccessor" > 
    <constructor-arg type="org.springframework.context.MessageSource" 
     ref="coreMessageSource" /> 
</bean> 

정말 있다면 감사하겠습니다 누군가 도움을 줄 수 있습니다. 시간 내 줘서 고마워.

답변

0

MessageSourceAccessor 접근자를 bean으로 구성 할 필요가 거의 없으므로 일반적으로 필요에 따라 수동으로 인스턴스화하는 것이 더 쉽습니다. 따라서 콩에 MessageSourceAccessor을 주입하는 대신 원자재 인 MessageSource을 주입 한 다음 필요에 따라 MessageSourceAccessor에 포장하십시오 (예 : new MessageSourceAccessor(messageSource) 사용).

그런 다음 MessageSourceAccessor이 아닌 MessageSource 주위에 조언을 넣으면 더 잘 작동합니다. 또한 MessageSourceAccessor은 자체적으로 중요한 처리 시간을 추가하지 않으며 약 MessageSource의 얇은 래퍼입니다.

+0

감사합니다. skaffman. 이것은 기존 응용 프로그램이며 MessageSourceAccessor 빈은 다른 클래스의 묶음으로 주입되고 있으며 다른 모든 클래스를 변경하는 것이 편안하지는 않습니다. 이 문제에 대해 다른 해결 방법이 있는지 궁금합니다. 제발 조언 해주세요. – swetha