6.4.2 자바빈 프로퍼티

Spring에서 제공되는 대부분의 FactoryBean구현 과 마찬가지로 , ProxyFactoryBean클래스 자체는 JavaBean입니다. 속성은 다음과 같은 용도로 사용됩니다.

AOP 프록시 매커니즘은 두 가지가 있는데, 하나는 JDK 동적 프록시 이고, 다른 하나가 CGLIB 프록시야.

참조 : http://wonwoo.ml/index.php/post/1576

몇개의 키 프로퍼티는 org.springframework.aop.framework.ProxyConfig (Spring의 모든 AOP 프록시 팩토리의 슈퍼 클래스 에서) 로부터 상속받습니다 . 이러한 주요 속성에는 다음이 포함됩니다.

  • proxyTargetClass: 대상 클래스의 인터페이스가 아닌 대상 클래스가 프록시 될 경우 true. 이 속성 값을 true로 설정하면 CGLIB 프록시가 만들어집니다 ( JDK 및 CGLIB 기반 프록시 참조 ).

  • optimize: 적극적인 최적화가 CGLIB를 통해 생성 된 프록시에 적용되는지 여부를 제어합니다. 관련 AOP 프록시가 최적화를 처리하는 방법을 완전히 이해하지 않으면 이 설정을 사용하지 않아야합니다. 이것은 현재 CGLIB 프록시에만 사용됩니다. JDK 동적 프록시에서는 아무 효과가 없습니다.

  • frozen: 프록시 구성이있는 경우 구성 frozen변경이 더 이상 허용되지 않습니다. 이는 약간의 최적화와 Advised 프록시 생성 후 발신자가 ( 인터페이스를 통해 ) 프록시를 조작 할 수 없도록하려는 경우에 유용합니다 . 이 속성의 기본값은 false이므로 변경 사항 (예 : 추가 advice 추가)이 허용됩니다.

  • exposeProxy: 현재 프록시가 ThreadLocal대상에 의해 액세스 될 수 있도록 노출되어야하는지 여부를 결정합니다 . 대상에서 프록시를 가져와 exposeProxy속성을 true로 설정 해야하는 경우 대상에서이 메서드를 true사용할 수 있습니다 AopContext.currentProxy().

ProxyFactoryBean다음의 특정 속성을 포함한다.

  • proxyInterfaces: String인터페이스 이름 의 배열 . 이것이 제공되지 않으면 대상 클래스에 대한 CGLIB 프록시가 사용됩니다 (그러나 JDK 및 CGLIB 기반 프록시 참조 ).

  • interceptorNames: 적용할 Advisor나 인터셉터, 다른 어드바이스 이름의 문자열 배열. 순서가 중요하므로 처음 나온 것이 먼저 적용된다. 즉, 리스트의 첫 인터셉터가 가장 먼저 호출을 가로챌 수 있다. 이름들은 조상 팩토리의 빈 이름을 포함해서 현재 팩토리의 빈 이름들이다. 여기서 빈 참조가 없는데 그렇게 할 경우 어드바이스의 싱글톤 설정을 무시하는 ProxyFactoryBean가 되기 때문이다.

    인터셉터 이름 앞에 별표 ( *)를 붙일 수 있습니다 . 그러면 별표가 적용되기 전에 파트로 시작하는 이름을 가진 모든 advisor bean이 적용됩니다. "글로벌"권고 자 사용에서이 기능을 사용 하는 예를 찾을 수 있습니다 .

  • 싱글 톤 (singleton) : getObject()메서드가 호출 되는 빈도에 관계없이 팩터리가 단일 객체를 반환해야하는지 여부 . 몇 가지 FactoryBean구현이 그러한 방법을 제공합니다. 기본값은 true입니다. 상태 기반 조언을 사용하려면 (예 : 상태 기반 믹스) - prototype advice와 singleton 값을 false로 사용하십시오.

Last updated