2016-04-22 7 views
0

Ich habe Spring Bean mit Session-Bereich und AOP CGLIB-Proxy.Haben Sie Spring AOP neu verpackt CGLIB Version

<beans xmlns="http://www.springframework.org/schema/beans" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns:context="http://www.springframework.org/schema/context" 
      xmlns:aop="http://www.springframework.org/schema/aop" 
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> 

    <bean id="restClient" class="com.test.services.RestClient" scope="session"> 
       <constructor-arg ref="dataSource"/> 
       <aop:scoped-proxy /> <!--proxy-target-class="true" default is true to use cglib--> 
    </bean> 
    </beans> 

Im Frühjahr-AOP-4.2.xsd seine haben <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="true">

sind klassenbasierte (CGLIB) Proxies geschaffen werden? Dies ist die Standardeinstellung. in Um zu standardmäßigen Java-Schnittstellen-basierten Proxies zu wechseln, schalten Sie dieses Flag auf "false".

Dies bedeutet, dass der Standard-CGLIB-Proxy erstellt wird. Aber mein Maven-Projekt hat keine CGLIB-Abhängigkeit Ich habe nur Spring-Kontext und Spring-Web und im Abhängigkeitsdiagramm hat es Spring-Aop, aber ohne transitive Abhängigkeit von cglib. Mein Projekt kompiliert und ausgeführt werden, ohne diese Abhängigkeit zu haben:

 <dependency> 
      <groupId>cglib</groupId> 
      <artifactId>cglib</artifactId> 
      <version>3.2.1</version> 
     </dependency> 

Wenn seine Notwendigkeit cglib Abhängigkeit oder feder aop v4.2.5 bereits cglib Version neu verpacken müssen enthalten?

Antwort

1

Spring enthält eine neu gepackte Version von cglib und verwendet nur diese Version. Es spielt keine Rolle, welche Version von cglib Sie auf dem Klassenpfad haben. Nur das Setzen der Flagge ist wichtig.

Verwandte Themen