Spring 3.x企业应用开发实战(12)-基于Schema配置剖面
Spring 3.x企业应用开发实战(12)----基于Schema配置切面
NaiveWaiter.java
package com.smart.schema;
public class AdviceMethods
{
public void preGreeting()
{
System.out.println("--How are you!--");
}
}
基于Schema配置切面
如果项目不能使用JDK 5.0,那么就无法使用基于@AspectJ注解的切面了。
一个简单的切面配置
<?xml version="1.0" encoding="UTF-8"?> <!-- 引用Spring的多个Schema空间的格式 --> <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" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <aop:config proxy-target-class="true"> <aop:aspect ref="adviceMethods"><!-- #1、引用#4處的adviceMethods --> <aop:before method="preGreeting" pointcut="target(com.smart.schema.NaiveWaiter) and execution (* greetTo(..))"/><!-- 聲明切點表達式 --> <!-- 增強方法使用adviceMethods Bean中的preGreeting方法 --> </aop:aspect> </aop:config> <bean id="adviceMethods" class="com.smart.schema.AdviceMethods"/><!-- #4、增強方法所在的Bean --> <bean id="naiveWaiter" class="com.smart.schema.NaiveWaiter"/> <bean id="naughtWaiter" class="com.smart.schema.NaiveWaiter"/> </beans>
NaiveWaiter.java
package com.smart.schema; import com.smart.aspectj.Waiter; public class NaiveWaiter implements Waiter { @Override public void greetTo(String name) { System.out.println("Greet to "+name+"..."); } @Override public void serveTo(String name) { System.out.println("Serving to "+name+"..."); } }
package com.smart.schema;
public class AdviceMethods
{
public void preGreeting()
{
System.out.println("--How are you!--");
}
}