您的位置:首页 > 编程语言 > Java开发

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

2018-01-17 00:00 573 查看
摘要: aop

1.准备工作

1.1 准备jar包



2.基于xml的aop实现

2.1创建项目



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结果



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结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring aop idea