`

proxy-target-class="false"与proxy-target-class="true"区别

 
阅读更多

 原创转载请注明出处:http://agilestyle.iteye.com/blog/2326257

 

<aop:aspectj-autoproxy proxy-target-class="false"/> 基于接口,使用JDK动态代理

JDK Dynamic proxy can only proxy by interface (so your target class needs to implement an interface, which will also be implemented by the proxy class).

 

<aop:aspectj-autoproxy proxy-target-class="true"/> 基于类,需要使用cglib库

CGLIB (and javassist) can create a proxy by subclassing. In this scenario the proxy becomes a subclass of the target class. No need for interfaces.

 

Note:

这两种代理方式的使用使用了 策略模式

分享到:
评论

相关推荐

    spring框架手动提交事务,jdbctample

    &lt;aop:aspectj-autoproxy proxy-target-class="true"&gt;&lt;/aop:aspectj-autoproxy&gt; xml中要有这句,可以解决子类类报错的问题。 或者去掉这句话,同时去掉public class AccountServiceImpl implements AccountService {...

    维生药业小项目 SSH简单学习项目

    维生药业小项目 SSH简单... proxy-target-class="true" /&gt; &lt;!-- 使用annotation 自动注册bean,并检查@Required,@Autowired的属性已被注入 --&gt; &lt;context:component-scan base-package="com.sixth" /&gt; &lt;/beans&gt;

    15、spring 配置以及使用 1

    `proxy-target-class="false"`表示使用接口代理,如果设置为"true",则会使用CGLIB类代理,这通常用于没有接口的类。 4. Spring开发环境选择: - Spring提供了环境切换配置,例如在`web.xml`中可以通过`&lt;context-...

    Spring扫描器—spring组件扫描使用详解

    通过`proxy-target-class="true"`属性,我们可以指定使用CGLIB代理而不是默认的JDK动态代理。 六、自定义初始化和销毁方法 对于需要在bean初始化或销毁时执行特定操作的情况,可以使用`@PostConstruct`和`@...

    spring_aop4.rar_Home Home_jar 转换_spring AOP jar

    aop:aspectj-autoproxy proxy-target-class="true"/&gt; JDK动态代理和CGLIB字节码生成的区别? * JDK动态代理只能对实现了接口的类生成代理,而不能针对类 * CGLIB是针对类实现代理,主要是对指定的类生成一个...

    Spring中的AOP不生效

    @EnableAspectJAutoProxy(proxyTargetClass = false) public class AppConfig { // 配置Bean等 } ``` 3. **选择正确的代理模式**: - 如果需要使用CGLIB代理,可以在XML配置中加入以下语句: ```xml ...

    ssh整合过程的注意点1

    &lt;tx:annotation-driven proxy-target-class="true" transaction-manager="transactionManager" /&gt; ``` `proxy-target-class="true"` 表示使用CGLIB代理,这样可以对非接口实现类进行事务管理。`transaction-manager`...

    Spring中Quartz的配置实例

    org.quartz.scheduler.rmi.proxy = false org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool org.quartz.threadPool.threadCount = 10 org.quartz.threadPool.threadPriority = 5 org.quartz....

    spring_aop_cglib的实现方式

    在Spring配置中,如果我们希望使用CGLIB代理,可以在`&lt;aop:config&gt;`或`&lt;aop:aspectj-autoproxy&gt;`元素下添加`&lt;aop:proxy&gt;`子元素,并设置`proxy-target-class="true"`。例如: ```xml &lt;aop:aspect id="myAspect" ...

    spring事物管理配置的5种方式

    &lt;tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/&gt; ``` 这种方式会自动为带有`@Transactional`注解的方法创建AspectJ代理,无需额外的`aop:config`。 综上所述,Spring...

    shiro入门学习demo源码

    &lt;property name="proxyTargetClass" value="true" /&gt; &lt;/bean&gt; &lt;bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"&gt; &lt;property name="securityManager" ref=...

    springmvc+spring+mybatis

    &lt;aop:aspectj-autoproxy proxy-target-class="true"/&gt; &lt;!-- 载入jdbc.properties文件 --&gt; &lt;bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&gt; &lt;property name="locations...

    Spring笔试考试题目.docx

    2. Cglib Dynamic Proxy:当proxy-target-class属性设置为true时,Spring将使用CGLIB库生成目标类的子类来实现AOP代理。 【Advice(增强)的缝合及应用时机】 Advice在目标对象上应用的过程称为“缝合”。缝合可以...

    spring-demo20-CGLIB动态代理.zip

    然后,在Spring配置文件中启用CGLIB代理,可以设置`proxy-target-class="true"`属性: ```xml &lt;aop:config proxy-target-class="true"&gt; &lt;!-- 配置切面 --&gt; ... ``` 接下来,创建一个需要代理的目标类,例如`...

    tomcat8 + nginx + memcached + cas 实现负载均衡的配置包

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; index index....

    Spring3中配置DBCP,C3P0,Proxool,Bonecp数据源

    &lt;aop:config proxy-target-class="true"/&gt; &lt;tx:annotation-driven transaction-manager="txManager"/&gt; &lt;!-- 采用单数据源事务控制方式,通过注解来定义事务--&gt; &lt;bean id="txManager" class="org.spring...

    spring中bean的范围(xml/annotation)

    &lt;aop:scoped-proxy proxy-target-class="true"/&gt; ``` **注解配置**: Spring 2.5引入了基于注解的配置,允许我们直接在类或方法上使用`@Scope`注解来设定范围。例如,创建一个Prototype范围的Bean: ```java @...

    2022年Spring笔试考试题目.doc

    该标签有一种 proxy-target-class 属性,默认为 false,表明使用 jdk 动态代理方式,当配置为 &lt;aop:aspectj-autoproxy proxy-target-class="true" /&gt; 时,表明使用 cglib 动态代理技术。 1.7 在 Spring AOP 中,...

Global site tag (gtag.js) - Google Analytics