spring中动态代理和静态代理的配置

本文介绍使用Spring框架实现面向切面编程(AOP)的方法,包括定义切面类、配置切入点及采用动态代理与静态代理的方式。具体展示了如何通过XML配置文件指定哪些类和方法需要进行切面操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

<?xml version="1.0" encoding="UTF-8"?>
<beans
   xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> 
     
   <!-- dao bean -->
   <bean id="dao" class="cn.com.csuinfosoft.aop.DaoImpl"></bean>  
  
   <!-- testTemp   bean -->
   <bean id="temp" class="cn.com.csuinfosoft.aop.TestTemp"></bean>  
  
  
   <!--
定义一个切面类   before-->
   <bean id="before" class="cn.com.csuinfosoft.aop.BeforeAdvice"></bean>
  
   <!-- after advice -->
   <bean id="after" class="cn.com.csuinfosoft.aop.AfterAdvice"></bean>
  
   <!-- around advice -->
   <bean id="around" class="cn.com.csuinfosoft.aop.AroundAdvice"></bean>
  
  
   <!-- auto proxy
动态代理-->
   <bean id="autoProxy" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
  
     <!--
配置bean列表   要被切入的类 -->
     <property name="beanNames">
       <list>
       <value>dao*</value>
       <value>temp</value>
       </list>
     </property>
     <!--
切入的切面类 -->
     <property name="interceptorNames">
       <list>
       <value>point</value>
       </list>
    
     </property>
  
   </bean>
  
  
   <!--
配置切入点   NameMatchMethodPointcutAdvisor根据方法的名字切入-->
   <bean id="point" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
    
     <!--
哪些方法要被切入 -->
     <property name="mappedNames">
       <list>
       <value>insert*</value>
       <value>save</value>
       </list>
     </property>
      
    
     <!--
切入的切面类 -->
     <property name="advice" ref="before">
      
     </property>
   </bean>
    
   <!--
静态代理   ProxyFactoryBean:配置一个代理对像 -->
   <bean id="proxy" class="org.springframework.aop.framework.ProxyFactoryBean">
        
         <!--  
被代理的接口列表 -->
  
     <property name="proxyInterfaces">
       <list>
       <value>cn.com.csuinfosoft.aop.Dao</value>
       </list>
     </property>
    
       <!--  
目标对像   -->

     <property name="target">
       <ref bean="dao"/>
     </property>
    
       <!--
加入的切面类   -->
     <property name="interceptorNames">
       <list>
       <value>around</value>
       </list>
     </property>
   </bean>  
  
  
</beans>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值