目录
1、导入坐标
2、创建目标接口和目标类
3、创建切面类(内部有增强方法)
4、将目标类和切面类的对象创建圈交给spring
5、在切面类使用注解配置织入关系
6、在配置文件中开启组件扫描和AOP的自动代理
7、测试代码
1、导入坐标
org.springframework spring-context5.0.5.RELEASE org.aspectj aspectjweaver1.8.4 org.springframework spring-test5.0.5.RELEASE junit junit4.12 test
2、创建目标接口和目标类
public interface TargetInterface {
void save();
}
@Component("Target")
public class Target implements TargetInterface {
public void save() {
System.out.println("save run....");
}
}
注:@Component("Target")注解表明交由Spring管理,id为Target
3、创建切面类(内部有增强方法)
4、将目标类和切面类的对象创建圈交给spring
5、在切面类使用注解配置织入关系
@Component("MyAspect")
@Aspect //标注为切面类
public class MyAspect {
@Before(value = "execution(public void com.itheima.anno.Target.save())")
public void before(){
System.out.println("前置增强");
}
}
注:@Aspect :标注此类为切面类,@Before(value = "execution(public void com.itheima.anno.Target.save())") :配置织入关系,此方法为前置方法,并表明了目标方法
6、在配置文件中开启组件扫描和AOP的自动代理
7、测试代码
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext-anno.xml")
public class AnnoTest {
@Autowired
private TargetInterface target;
@Test
public void test1(){
target.save();
}
}
3、创建切面类(内部有增强方法)
4、将目标类和切面类的对象创建圈交给spring
5、在切面类使用注解配置织入关系
@Component("MyAspect")
@Aspect //标注为切面类
public class MyAspect {
@Before(value = "execution(public void com.itheima.anno.Target.save())")
public void before(){
System.out.println("前置增强");
}
}
注:@Aspect :标注此类为切面类,@Before(value = "execution(public void com.itheima.anno.Target.save())") :配置织入关系,此方法为前置方法,并表明了目标方法
6、在配置文件中开启组件扫描和AOP的自动代理
7、测试代码
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext-anno.xml")
public class AnnoTest {
@Autowired
private TargetInterface target;
@Test
public void test1(){
target.save();
}
}
@Component("MyAspect")
@Aspect //标注为切面类
public class MyAspect {
@Before(value = "execution(public void com.itheima.anno.Target.save())")
public void before(){
System.out.println("前置增强");
}
}
注:@Aspect :标注此类为切面类,@Before(value = "execution(public void com.itheima.anno.Target.save())") :配置织入关系,此方法为前置方法,并表明了目标方法
6、在配置文件中开启组件扫描和AOP的自动代理
7、测试代码
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext-anno.xml")
public class AnnoTest {
@Autowired
private TargetInterface target;
@Test
public void test1(){
target.save();
}
}
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext-anno.xml")
public class AnnoTest {
@Autowired
private TargetInterface target;
@Test
public void test1(){
target.save();
}
}



