Spring Aop----用idea实现面向切面编程

1.准备工作

       1.1 准备jar包

            115315_22XH_3745828.png

2.基于xml的aop实现

        2.1创建项目

            115525_7Wjg_3745828.png

          2.2创建类

                 2.2.1创建Book类 


public class Book {
    public void add(){
        System.out.println("Book里面的add方法");
    }
}

                2.2.2创建MyBook类

public class MyBook {

    public void before1(){
        System.out.println("MyBook中的before方法");
    }
}

                2.2.3在xml上面添加

<bean id="book" class="com.xiaobo.aop.Book"></bean>
<bean id="myBook" class="com.xiaobo.aop.MyBook"></bean>
<!--配置aop操作-->
<aop:config>
    <!--配置切入点-->
    <aop:pointcut id="point1" expression="execution(* com.xiaobo.aop.Book.*())"  ></aop:pointcut>

    <!--配置切面
    把增强用到方法后面
    -->
    <aop:aspect ref="myBook">
        <!--配置增强类,method为增强类中哪个方法为前置-->
        <aop:before method="before1" pointcut-ref="point1"></aop:before>
    </aop:aspect>
    <aop:aspect ref="myBook">
        <!--配置增强类,method为增强类中哪个方法为前置-->
        <aop:after method="before1" pointcut-ref="point1"></aop:after>
    </aop:aspect>
</aop:config>

             2.2.4进行测试

@Test
public void testaop(){
    ApplicationContext context=new ClassPathXmlApplicationContext("bean2.xml");
    Book book = (Book) context.getBean("book");
    book.add();
}    

               2.2.5结果

120249_yIYJ_3745828.png

3.基于注解的方式

        3.1新建一个xml文件,添加如下代码,开启注解;

<!--配置对象-->

    <bean id="book" class="com.xiaobo.aop.Book"></bean>
    <bean id="myBook" class="com.xiaobo.aop.MyBook"></bean>
    <!--一句话自动开启注解aop操作-->
    <aop:aspectj-autoproxy></aop:aspectj-autoproxy>

        3.2创建类

//定义切面
@Aspect
public class Book {

    //定义要以特定增强的方式的增强方法,book先执行
    @Before(value = "execution(* com.xiaobo.aop.MyBook.*(..))")
    public void add(){
        System.out.println("Book里面的add方法");
    }
}
public class MyBook {

    public void before1(){
        System.out.println("MyBook中的before方法");
    }
}

        3.3进行测试

@Test
public void testaop2(){
    ApplicationContext context=new ClassPathXmlApplicationContext("bean3.xml");
    MyBook book = (MyBook) context.getBean("myBook");
    book.before1();
}

         3.4结果

转载于:https://my.oschina.net/u/3745828/blog/1608315

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值