복붙노트

[SPRING] Spring bean에서 proxy-target-class = "true"사용하기

SPRING

Spring bean에서 proxy-target-class = "true"사용하기

임마 저지 휴식을 사용하고 저지 필터가 일부 봄 콩에 액세스 할 수 있습니다.

그러나 다른 스레드에서 발견 한 것처럼 Jersey는 생성 된 Java 프록시와 달리 Java 프록시 인 경우 Spring bean을 얻지 못합니다. proxy-target-class = "true"를 추가하고 싶습니다.

그렇게하는 것의 영향은 무엇이며 또한 이것은 단일 빈에 설정 될 수 있습니까? 아니면 모든 참조 빈에 설정되어야합니까?

해결법

  1. ==============================

    1.proxy-target-class = "true"로 설정하면 jdk 프록시 대신 프록시에 대해 CGLIB2를 사용하게됩니다.

    proxy-target-class = "true"로 설정하면 jdk 프록시 대신 프록시에 대해 CGLIB2를 사용하게됩니다.

    설명서에 설명 된대로 다음과 같은 의미가 있습니다.

    또한 특정 구성 요소에 대해 "target-proxy"를 만들 수 있어야합니다.

    proxyMode=ScopedProxyMode.TARGET_CLASS
    
  2. ==============================

    2.컨트롤러가 공식적으로 인터페이스를 구현하지만 CGLib-Proxy 강제 실행 (Spring 4.1.6.RELEASE의 SpringBoot 1.2.3.RELEASE) :

    컨트롤러가 공식적으로 인터페이스를 구현하지만 CGLib-Proxy 강제 실행 (Spring 4.1.6.RELEASE의 SpringBoot 1.2.3.RELEASE) :

    @Controller
    @Scope( proxyMode = ScopedProxyMode.TARGET_CLASS )
    public class ServiceImpl implements ServiceIntf
    { .... }
    

    @RequestMapping 및 @Transactional 주석을 유효하고 올바르게 사용할 수 있습니다.

  3. ==============================

    3.Java Spring Config 클래스에서 다음 주석을 사용하십시오.

    Java Spring Config 클래스에서 다음 주석을 사용하십시오.

  4. from https://stackoverflow.com/questions/15568112/using-proxy-target-class-true-with-spring-beans by cc-by-sa and MIT license