java Spring AOP详解及简单实例

网友投稿 485 2023-05-17


java Spring AOP详解及简单实例

一、什么是AOP

AOP(Aspect Oriented Programming)面向切面编程不同于OOP(Object Oriented Programming)面向对象编程,AOP是将程序的运行看成一个流程切面,其中可以在切面中的点嵌入程序。

举个例子,有一个People类,也有一个Servant仆人类,在People吃饭之前,Servant会准备饭,在People吃完饭之后,Servant会进行打扫,这就是典型的面向切面编程.

其流程图为:

二、Spring AOP实现:

1、People类:

public class People {

public void eat() {

System.out.println(“happyheng开始吃饭啦");

}

public void play(){

}

}

Servant类:

@Aspect

public class Servant {

/**

* 在吃饭之前

*/

@Before("execution(** com.happyheng.entity.People.eat(..))")

public void prepareFood(){

System.out.println("准备食物");

}

/**

* 在吃饭之后

*/

@After("ehttp://xecution(** com.happyheng.entity.People.eat(..))")

public void clean(){

System.out.println("打扫");

}

}

其中的 @Before是指执行前,@After是指执行方法后获取方法抛出异常后,@AfterReturning是指在执行方法后调用,@AfterThrowing是指方法抛出异常后调用。

2、在oTdnxWLapplicationConoTdnxWLtext.xml中进行配置:

xmlns:xsi="http://w3.org/2001/XMLSchema-instance" xmlns:aop="http://springframework.org/schema/aop"

xsi:schemaLocation="http://springframework.org/schema/beans

http://springframework.org/schema/beans/spring-beans-3.0.xsd

http://springframework.org/schema/aop

http://springframework.org/schema/aop/spring-aop-3.0.xsd

http://springframework.org/schema/context

http://springframework.org/schema/context/spring-context-3.0.xsd"

xmlns:context="http://springframework.org/schema/context">

xmlns:xsi="http://w3.org/2001/XMLSchema-instance" xmlns:aop="http://springframework.org/schema/aop"

xsi:schemaLocation="http://springframework.org/schema/beans

http://springframework.org/schema/beans/spring-beans-3.0.xsd

http://springframework.org/schema/aop

http://springframework.org/schema/aop/spring-aop-3.0.xsd

http://springframework.org/schema/context

http://springframework.org/schema/context/spring-context-3.0.xsd"

xmlns:context="http://springframework.org/schema/context">

3、在main中使用:

public static void main(String[] args) {

ApplicationContext ctx = new ClassPathXmlApplicationContext(APPLICATION_XML);

People happyheng = (People)ctx.gehttp://tBean("happyheng");

happyheng.eat();

}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:关于foreach循环中遇到的问题小结
下一篇:Spring Boot的Profile配置详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~