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");
   }

}

 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);
     }

     
   
}

内容很简单,不再赘述

 

接下来是配置文件

 

<?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>

最重要的是配置一个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();
    }


}

 

结果:

Ha Ha
write foo
Hei Hei

write bar

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 学籍在一年级学生在二年级怎么办 一岁多宝宝挑食不爱吃饭菜怎么办饭 换了新手机微信好友显示不全怎么办 朋友人在外地 联系不上怎么办 幼儿连字母都记不住该怎么办 车一边轮子掉农村路边小水沟怎么办 20个月小孩脾气急燥怎么办 给小孩上户口母亲是外国人怎么办 宝宝在学校不敢跟老师说话怎么办? 早教课上宝宝总爱乱跑怎么办? 20天大的宝宝4天不拉大便怎么办 还不会说话的小孩子脾气大怎么办 两岁的宝宝说话变的口吃怎么办 37周b超宝宝腿短怎么办 3岁的宝宝说话说不好怎么办 小儿说话晚的原因宝宝说话晚怎么办 22岁的儿子在家不说话怎么办 儿子2周4个月了不说话怎么办 三岁的宝宝还不会数数怎么办 2岁宝宝晚上不睡觉不听话怎么办 8个月的狗狗怕人不敢出门怎么办 狗太怕人了怎么办都不敢出门 媳妇和婆婆晚上都不想带孩子怎么办 婆婆和媳妇带孩子观念不一样怎么办 婆婆给媳妇买了不喜欢的家具怎么办 断奶后宝宝对奶粉很抗拒怎么办 两岁宝宝断奶不喝奶粉怎么办 宝宝两岁了断奶后奶粉不吃怎么办 宝宝断奶两天了不愿意吃奶粉怎么办 一岁四个月宝宝断奶不喝奶粉怎么办 四个月宝宝断奶不喝奶粉怎么办 四个月宝宝断奶后不吃奶粉怎么办 2岁的宝宝不开口说话怎么办 一周岁宝宝断奶不喝奶粉怎么办 八个月宝宝断奶不喝奶粉怎么办 婆家人总是用心机对待娘家人怎么办 婆婆老是背后说我娘家人坏话怎么办 婆家姐带孩子住娘家不走怎么办? 老是想在娘家不想回婆家怎么办 娘家和婆家同时向我借钱怎么办 土地确权后娘家婆家都没有怎么办