Spring和AspectJ集成开发入门实例
来源:互联网 发布:lol龙瞎皮肤淘宝多少钱 编辑:程序博客网 时间:2024/04/30 15:25
首先,到eclipse网站下载符合自己eclipse版本的aspectJ开发插件
安装方法参考http://blog.csdn.net/daryl715/archive/2007/08/20/1751888.aspx
首先,要将我们的工程传唤成AspectJ工程,方法是右键单击工程,点击最下面的convert to aspectJ project
MessageWriter.java
这是被通知的对象,我们准备通知foo方法
package ch7.aspectJ;
public class MessageWriter ...{
public void foo()...{
System.out.println("write foo");
}
public void bar()...{
System.out.println("write bar");
}
}
public class MessageWriter ...{
public void foo()...{
System.out.println("write foo");
}
public void bar()...{
System.out.println("write bar");
}
}
MessageWrapper.java
这是一个aspecjt描述文件,不是java类,随意我们必须用aspecJ Editor打开,方法是,右键选中文件,点打开方式,其中就有aspecJ Editor
package ch7.aspectJ;
public aspect MessageWrapper ...{
private String prefix;
private String suffix;
public void setPrefix(String prefix)...{
this.prefix=prefix;
}
public void setSuffix(String suffix)...{
this.suffix=suffix;
}
pointcut doWriting():
execution(*
ch7.aspectJ.MessageWriter.foo());
before():doWriting()...{
System.out.println(prefix);
}
after():doWriting()...{
System.out.println(suffix);
}
}
public aspect MessageWrapper ...{
private String prefix;
private String suffix;
public void setPrefix(String prefix)...{
this.prefix=prefix;
}
public void setSuffix(String suffix)...{
this.suffix=suffix;
}
pointcut doWriting():
execution(*
ch7.aspectJ.MessageWriter.foo());
before():doWriting()...{
System.out.println(prefix);
}
after():doWriting()...{
System.out.println(suffix);
}
}
内容很简单,不再赘述
接下来是配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="aspect" class="ch7.aspectJ.MessageWrapper" factory-method="aspectOf">
<property name="prefix">
<value>Ha Ha</value>
</property>
<property name="suffix">
<value>Hei Hei</value>
</property>
</bean>
</beans>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="aspect" class="ch7.aspectJ.MessageWrapper" factory-method="aspectOf">
<property name="prefix">
<value>Ha Ha</value>
</property>
<property name="suffix">
<value>Hei Hei</value>
</property>
</bean>
</beans>
最重要的是配置一个factory-method=aspectOf 因为方面的实例由aspectJ自行管理,我们只能通过这个方法获得该方面的实例
测试代码:
我们直接创建MessageWriter即可,不需要像springAOP那样利用代理实现AOP
package ch7.aspectJ;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test ...{
/** *//**
* @param args
*/
public static void main(String[] args) ...{
ApplicationContext context=new ClassPathXmlApplicationContext("ch7/aspectJ/applicationContext.xml");
MessageWriter writer=new MessageWriter();
writer.foo();
writer.bar();
}
}
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test ...{
/** *//**
* @param args
*/
public static void main(String[] args) ...{
ApplicationContext context=new ClassPathXmlApplicationContext("ch7/aspectJ/applicationContext.xml");
MessageWriter writer=new MessageWriter();
writer.foo();
writer.bar();
}
}
结果:
Ha Ha
write foo
Hei Hei
write bar
- Spring和AspectJ集成开发入门实例
- Spring AOP @AspectJ 入门实例
- Spring AOP @AspectJ 入门实例
- Spring AOP @AspectJ 入门实例
- Spring AOP @AspectJ 入门实例
- Spring AOP @AspectJ 入门实例
- Spring和dwr的集成入门实例
- Spring 与Aspectj集成
- Spring集成Redis实例入门
- Spring Framework 开发参考手册 之六 集成AspectJ
- Spring+Ibatis集成开发实例
- Spring+Ibatis集成开发实例!
- Spring+Ibatis集成开发实例
- Spring+Ibatis集成开发实例
- Spring+Ibatis集成开发实例!
- Spring+iBatis集成开发实例
- Spring+Ibatis集成开发实例
- Spring+Ibatis集成开发实例
- VB事件
- 新手入门之va_list
- 过了七夕今天很轻松
- Visual Basic CommonDialog 控件的使用
- 判断图片的格式(Javascript)
- Spring和AspectJ集成开发入门实例
- Some JavaScript Codes or Nodes Collected from Web
- 阿蒙:程序员创业如何寻找优秀的合作伙伴?
- 关于用tar命令打包目录时,去除部分子目录的子目录
- 小心,机会胆儿小—写在中国的情人节(2)
- MSCoree.dll
- VB读写ini文件
- InstallShield脚本语言的编写
- 上传图片,前检查 图片的大小,