Spring AOP切面传递参数


spring 配置文件相关配置
<aop:config>
     <!-- 定义AOP切面 -->
     <aop:aspect ref="magician">
          <!-- 定义AOP切点 -->
          <aop:pointcut expression="execution(* com.spring.aop.Thinker.thinkOfSomething(String)) and args(thoughts)" id="thinking"/>
          <!-- 前值方法与切点相关联 -->
          <aop:before pointcut-ref="thinking" method="interepetThoughts" arg-names="thoughts"/>
      </aop:aspect>
</aop:config>
对应的测试类
public interface MindReader {
     public void interepetThoughts(String thoughts);
     public String getThoughts();
}
@Service("magician")
public class Magician implements MindReader{
     private String thoughts;
     @Override
     public void interepetThoughts(String thoughts) {
          System.out.println("Intercepting volunteer's thoughts="+thoughts);
          this.thoughts = thoughts;
     }
     @Override
     public String getThoughts() {
          return thoughts;
     }
}
public interface Thinker {
     public void thinkOfSomething(String thoughts);
}
@Service("volunteer")
public class Volunteer implements Thinker{
     private String thoughts;
     @Override
     public void thinkOfSomething(String thoughts) {
          this.thoughts = thoughts;
     }
     public String getThoughts(){
          return thoughts;
     }
}
测试方法
public static void main(String[] args) throws Exception {
          GenericXmlApplicationContext context = new GenericXmlApplicationContext();
          context.load("com/spring/aop/applicationContext.xml");
          context.refresh();
          Volunteer volunteer = (Volunteer)context.getBean("volunteer");
          volunteer.thinkOfSomething("Queen of Hearts");
          Magician magician = (Magician)context.getBean("magician");
          System.out.println("Magician's Method "+magician.getThoughts());
     }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fjkxyl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值