示例1:
<bean id="test" class="bean.TestBean">
<property name="name" value="张三"></property>
<property name="say" value="你好!"></property>
<property name="learnBean" ref="learn"></property>
</bean>
<bean id="learn" class="bean.LearnBean">
<property name="dosomething" value="我在学习中……"></property>
</bean>
TestBean.java
package bean;
public class TestBean {
private String name;
private String say;
private LearnBean learnBean;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSay() {
return say;
}
public void setSay(String say) {
this.say = say;
}
public LearnBean getLearnBean() {
return learnBean;
}
public void setLearnBean(LearnBean learnBean) {
this.learnBean = learnBean;
}
public void say() {
System.out.println(name + "说:" + say + "," + learnBean.getDosomething());
}
}
LearnBean.java
package bean;
public class LearnBean {
private String dosomething;
public String getDosomething() {
return dosomething;
}
public void setDosomething(String dosomething) {
this.dosomething = dosomething;
}
}
test.java
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
TestBean tb = (TestBean) ac.getBean("test");
tb.say();
运行结果:
张三说:你好!,我在学习中……
示例二:
<bean id="logAdvice" class="biz.LogAdvice"></bean>
<bean id="afterAdvice" class="biz.AfterAdvice"></bean>
<bean id="bookBiz" class="biz.BookBizImpl"></bean>
<bean id="bookBizProxy" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces" value="biz.BookBiz"></property>
<property name="interceptorNames">
<list>
<value>logAdvice</value>
<value>afterAdvice</value>
</list>
</property>
<property name="target" ref="bookBiz"></property>
</bean>
BookBiz.java
package biz;
public interface BookBiz {
public void buy();
}
BookBizImpl.java
package biz;
public class BookBizImpl implements BookBiz {
@Override
public void buy() {
// TODO Auto-generated method stub
System.out.println("买书");
}
}
LogAdvice.java
package biz;
import java.lang.reflect.Method;
import org.springframework.aop.MethodBeforeAdvice;
public class LogAdvice implements MethodBeforeAdvice {
@Override
public void before(Method arg0, Object[] arg1, Object arg2)
throws Throwable {
// TODO Auto-generated method stub
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy年MM月dd日 E HH:mm:ss:SS a");
System.out.println(sdf.format(new java.util.Date()));
}
}
AfterAdvice.java
package biz;
import java.lang.reflect.Method;
import org.springframework.aop.AfterReturningAdvice;
public class AfterAdvice implements AfterReturningAdvice {
@Override
public void afterReturning(Object arg0, Method arg1, Object[] arg2,
Object arg3) throws Throwable {
// TODO Auto-generated method stub
System.out.println("离开书店");
}
}
Test.java
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
BookBiz bookBiz = (BookBiz) ac.getBean("bookBizProxy");
bookBiz.buy();
运行结果:
2013年05月28日 星期二 12:09:37:658 下午
买书
离开书店