读书人

Spring学习札记 AOP的HelloWorld

发布时间: 2012-09-29 10:30:01 作者: rapoo

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.


读书人网 >软件架构设计

热点推荐