您的位置:首页 > 编程语言 > Java开发

Spring学习笔记 AOP的HelloWorld

2012-09-18 17:40 423 查看
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
{
/**
* @author	ArvinRong, 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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: