<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.0.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.0.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.0.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>4.0.5.RELEASE</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.1</version> </dependency>
package com.wowo.spring_aop_demo1;
public class Car {
public void go(){
System.out.println("go go go!");
}
}
package com.wowo.spring_aop_demo1;
public class CarLogger {
public void beforeRun(){
System.out.println("car is going to run");
}
public void afterRun(){
System.out.println("car is running");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd"
>
<bean id="car" class="com.wowo.spring_aop_demo1.Car"/>
<bean id="logger" class="com.wowo.spring_aop_demo1.CarLogger" />
<aop:config>
<aop:aspect ref="logger">
<aop:pointcut expression="execution(* com.wowo.spring_aop_demo1.Car.go(..))" id="go"/>
<aop:before pointcut-ref="go" method="beforeRun" />
<aop:after pointcut-ref="go" method="afterRun" />
</aop:aspect>
</aop:config>
</beans>
package com.wowo.spring_aop_demo1;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App
{
public static void main( String[] args )
{
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
Car car=(Car) context.getBean("car");
car.go();
}
}
car is going to run go go go! car is running
import org.aspectj.lang.ProceedingJoinPoint;
public class CarLogger {
public void aroundRun(ProceedingJoinPoint joinpoint){
System.out.println("car is going to run");
try {
//调用被代理的对象的目标方法,本例中指向Car.go()方法
joinpoint.proceed();
} catch (Throwable e) {
e.printStackTrace();
}
System.out.println("car is running");
}
}
<aop:config>
<aop:aspect ref="logger">
<aop:pointcut expression="execution(* com.wowo.spring_aop_demo1.Car.go(..))" id="go"/>
<aop:around method="aroundRun" pointcut-ref="go"/>
</aop:aspect>
</aop:config>
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有