AOP XML方式配置案例:
package com.what21.spring.bean;
public class Bean {
private String name;
private String value;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
int i = 1/0;
return value + "" + i;
}
public void setValue(String value) {
this.value = value;
}
}
package com.what21.spring.bean;
import org.aspectj.lang.ProceedingJoinPoint;
public class XmlInterceptor {
public void before() {
System.out.println("-----before()-----");
}
public void after() {
System.out.println("-----after()-----");
}
public void afterReturning() {
System.out.println("-----afterReturning()-----");
}
public void afterThrowing() {
System.out.println("-----afterThrowing()-----");
}
public Object around(ProceedingJoinPoint pjp) {
System.out.println("-----around before-----");
Object ret = null;
try {
ret = pjp.proceed();
} catch (Throwable e) {
e.printStackTrace();
}
System.out.println("-----around after-----");
return ret;
}
}
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd">
package com.what21.spring.aop;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.what21.spring.bean.Bean;
public class SpringAopDemo {
/**
* @param args
*/
public static void main(String[] args) {
String path = "com/what21/spring/aop/applicationContext.xml";
ApplicationContext ac = new ClassPathXmlApplicationContext(path);
Bean bean = (Bean)ac.getBean("bean");
System.out.println("bean > " + bean);
System.out.println("bean.name > " + bean.getName());
try{
System.out.println("bean.value > " + bean.getValue());
}catch(Exception e){
System.out.println(e);
// e.printStackTrace();
}
System.out.println("-----end-----");
}
}