Spring AOP 示例:使用切面显示火车出发时间和日期
火车类 Train:
public class Train {
private String trainNo;
private String startPlace;
public Train() {}
public Train(String trainNo, String startPlace) {
this.trainNo = trainNo;
this.startPlace = startPlace;
}
public void setTrainNo(String trainNo) {
this.trainNo = trainNo;
}
public void setStartPlace(String startPlace) {
this.startPlace = startPlace;
}
public void start() {
System.out.println('Train ' + trainNo + ' starts from ' + startPlace + ' at ' + new Date());
}
}
切面类 TimeAspect:
public class TimeAspect {
public void showTime() {
System.out.println('Current time is ' + new Date());
}
}
Spring 配置文件 applicationContext.xml:
<bean id="train1" class="com.example.Train">
<property name="trainNo" value="K1234"/>
<property name="startPlace" value="Shanghai"/>
</bean>
<bean id="train2" class="com.example.Train">
<constructor-arg value="G3456"/>
<constructor-arg value="Beijing"/>
</bean>
<bean id="timeAspect" class="com.example.TimeAspect"/>
<aop:config>
<aop:aspect ref="timeAspect">
<aop:pointcut id="startPointcut" expression="execution(* com.example.Train.start())"/>
<aop:before pointcut-ref="startPointcut" method="showTime"/>
</aop:aspect>
</aop:config>
测试程序代码:
public class Test {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
Train train1 = (Train) context.getBean("train1");
train1.start();
Train train2 = (Train) context.getBean("train2");
train2.start();
}
}
原文地址: http://www.cveoy.top/t/topic/nOgp 著作权归作者所有。请勿转载和采集!