SpringAOP入门学习一:基于注解配置切面( AspectJ)

写在前面:仅供入门了解,AOP还有其他知识点,请参考spring官方文档
1.创建测试接口
package com.spring.aop.demo1;
public interface Employee {
/*
* 测试接口
*/
public void play();
}

2.实现接口
package com.spring.aop.demo1;
/*实现接口类/
public class EmployImpl implements Employee {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/实现接口方法/
@Override
public void play() {
System.out.println(name + ” play basketball and football”);
}
}
3.编写切面
package com.spring.aop.demo1;
import java.util.Date;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
@Aspect
public class AspectLogger {

/*
 * 为com.spring.aop.demo1包下的所有接口方法添加切面(这里是为com.spring.aop.demo1.Employee.play())
 */

public static final String EXECUTION = “execution(* com.spring.aop.demo1..(..))”;
@Before(EXECUTION)//前置通知:执行com.spring.aop.demo1.Employee.play()前执行
public void logBefore() {
System.out.println(“开打前时间:”+ new Date());
}
@After(EXECUTION)//后置通知:执行com.spring.aop.demo1.Employee.play()后执行
public void logAfter() {
try {
Thread.sleep(10000);//这里只是为了显示输出效果明显添加线程等待
System.out.println(“结束时间:”+ new Date());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
4.在spring applicationContext.xml中配置切面(本例中,我把applicationContext.xml重命名为demo1Aop.xml)

<!-- 要使用基于XML的配置启用@AspectJ支持,请使用<aop:aspectj-autoproxy> -->
<aop:aspectj-autoproxy/>
<bean id="aspectLogger" class="com.spring.aop.demo1.AspectLogger"/>
<bean id="employ" class="com.spring.aop.demo1.EmployImpl">
    <property name="name" value="Jhon"></property>
</bean>

5.编写测试类
public class TestDemo1 {
@Test
public void testEmploy(){
//配置Ioc容器
ApplicationContext act = new ClassPathXmlApplicationContext(“demo1Aop.xml”);
//从Ioc容器中获取对象
Employee emp = (Employee) act.getBean(“employ”);
//执行对象方法
emp.play();
}
}
6.控制台输出
开打前时间:Tue Jun 20 00:11:27 CST 2017
Jhon play basketball and football
结束时间:Tue Jun 20 00:11:37 CST 2017

注意:本案列需导入aspectjweaver.jar 包

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值