Spring学习笔记 AOP的HelloWorld
HelloWorld实现的基本步骤如下:
1.建立接口
package aop;public interface WebSite{ public void showContent();}2.建立接口的实现类
package aop;public class ArvinRongHomePage implements WebSite{ @Override public void showContent() { System.out.println("Arvin Rong's Space."); }}3.建立main方法类
package aop;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class AopMain{ /** * @authorArvinRong, 2012-8-31 */ public static void main(String[] args) { String configString = "aop/spring-config.xml"; ApplicationContext context = new ClassPathXmlApplicationContext(configString); WebSite webSite = context.getBean("website",WebSite.class); webSite.showContent(); }}4.建立Spring配置文件
<?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:context="http://www.springframework.org/schema/context"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"> <bean id="website" class="aop.ArvinRongHomePage" /> </beans>
测试运行,通过后
Arvin Rong's Space.
5.建立在接口实现类方法前需要执行的代码类(这种类在Spring中叫做Advice)
package aop;import java.lang.reflect.Method;import org.springframework.aop.MethodBeforeAdvice;public class BeforeContentAdvice implements MethodBeforeAdvice{ @Override public void before(Method arg0, Object[] arg1, Object arg2) throws Throwable { System.out.println("Welcome to my page."); }}6.修改Spring配置文件
<?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:context="http://www.springframework.org/schema/context"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"> <bean id="websiteTarget" class="aop.ArvinRongHomePage" /><!--id由website更改为websiteTarget--> <bean id="websiteAdvice" class="aop.BeforeContentAdvice" /> <bean id="website" class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="proxyInterfaces" value="aop.WebSite" /> <property name="interceptorNames"> <list> <value>websiteAdvice</value> </list> </property> <property name="target" ref="websiteTarget" /> </bean></beans>
测试运行,查看结果
Welcome to my page.Arvin Rong's Space.