隨筆-10  評(píng)論-66  文章-1  trackbacks-0

          ???? ?經(jīng)過(guò)這段日子的學(xué)習(xí)和使用Spring,慢慢地體會(huì)到Spring的優(yōu)妙之處,正在深入地吸收Spring的精華,呵呵。現(xiàn)在寫(xiě)的這個(gè)只是個(gè)簡(jiǎn)單AOP例子,包括前置通知,后置通知,環(huán)繞通知,和目標(biāo)對(duì)象。寫(xiě)這個(gè)例子的主要目標(biāo)只是想讓想學(xué)AOP的能更快地入門,了解一下如何去配置AOP里面的東東。
          目標(biāo)對(duì)象的接口:IStudent.java

          ?1 /**
          ?2 ?*?
          ?3 ? */

          ?4 package ?com.dragon.study;
          ?5
          ?6 /**
          ?7 ?*? @author ?dragon
          ?8 ?*
          ?9 ? */

          10 public ? interface ?IStudent? {
          11 ????
          12 ???? public ? void ?addStudent(String?name);
          13 }

          14


          目標(biāo)類:StudentImpl.java

          ?1 /**
          ?2 ?*?
          ?3 ? */

          ?4 package ?com.dragon.study.Impl;
          ?5
          ?6 import ?com.dragon.study.IStudent;
          ?7
          ?8 /**
          ?9 ?*? @author ?dragon
          10 ?*
          11 ? */

          12 public ? class ?StudentImpl? implements ?IStudent {
          13
          14 ????? public ? void ?addStudent(String?name) {
          15 ?????????System.out.println( " 歡迎? " + name + " ?你加入Spring家庭! " );
          16 ?????}

          17 }

          18



          前置通知:BeforeAdvice.java

          ?1 /**
          ?2 ?*?
          ?3 ? */

          ?4 package ?com.dragon.Advice;
          ?5
          ?6 import ?java.lang.reflect.Method;
          ?7
          ?8 import ?org.springframework.aop.MethodBeforeAdvice;
          ?9
          10 /**
          11 ?*? @author ?dragon
          12 ?*
          13 ? */

          14 public ? class ?BeforeAdvice? implements ?MethodBeforeAdvice {
          15
          16 ?????? public ? void ?before(Method?method,Object[]?args,?Object?target)
          17 ??????????????? throws ?Throwable {
          18 ??????????
          19 ??????????System.out.println( " 這是BeforeAdvice類的before方法. " );
          20 ??????????
          21 ??????}

          22 }

          23

          后置通知:AfterAdvice.java
          ?1/**
          ?2?*?
          ?3?*/

          ?4package?com.dragon.Advice;
          ?5
          ?6import?java.lang.reflect.Method;
          ?7
          ?8import?org.springframework.aop.AfterReturningAdvice;
          ?9
          10/**
          11?*?@author?dragon
          12?*
          13?*/

          14public?class?AfterAdvice?implements?AfterReturningAdvice{
          15????
          16????public?void?afterReturning(Object?returnValue?,Method?method,
          17???????????????????Object[]?args,Object?target)?throws?Throwable{
          18????????System.out.println("這是AfterAdvice類的afterReturning方法.");
          19????}

          20??????
          21
          22}

          23


          環(huán)繞通知:CompareInterceptor.java

          ?1/**
          ?2?*?
          ?3?*/

          ?4package?com.dragon.Advice;
          ?5
          ?6import?org.aopalliance.intercept.MethodInterceptor;
          ?7import?org.aopalliance.intercept.MethodInvocation;
          ?8
          ?9
          10/**
          11?*?@author?dragon
          12?*
          13?*/

          14public?class?CompareInterceptor?implements?MethodInterceptor{
          15
          16??????public?Object?invoke(MethodInvocation?invocation)?throws?Throwable{
          17??????????Object?result?=?null;
          18?????????String?stu_name?=?invocation.getArguments()[0].toString();
          19?????????if?(?stu_name.equals("dragon")){
          20?????????????//如果學(xué)生是dragon時(shí),執(zhí)行目標(biāo)方法,
          21??????????????result=?invocation.proceed();
          22??????????????
          23?????????}
          ?else{
          24?????????????System.out.println("此學(xué)生是"+stu_name+"而不是dragon,不批準(zhǔn)其加入.");
          25?????????}

          26????????
          27??????????return?result;
          28??????}

          29}

          30

          配置文件applicationContext.xml
          ?1<?xml?version="1.0"?encoding="UTF-8"?>
          ?2<!DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"?"http://www.springframework.org/dtd/spring-beans.dtd">
          ?3
          ?4<beans>
          ?5
          ?6<bean?id="beforeAdvice"?class="com.dragon.Advice.BeforeAdvice"></bean>
          ?7<bean?id="afterAdvice"?class="com.dragon.Advice.AfterAdvice"></bean>
          ?8<bean?id="compareInterceptor"?class="com.dragon.Advice.CompareInterceptor"></bean>
          ?9<bean?id="studenttarget"?class="com.dragon.study.Impl.StudentImpl"></bean>
          10
          11<bean?id="student"?class="org.springframework.aop.framework.ProxyFactoryBean">
          12??<property?name="proxyInterfaces">
          13????<value>com.dragon.study.IStudent</value>
          14??</property>
          15??<property?name="interceptorNames">
          16????<list>
          17?????<value>beforeAdvice</value>
          18?????<value>afterAdvice</value>
          19????<value>compareInterceptor</value>??
          20????</list>
          21??</property>
          22??<property?name="target">
          23????<ref?bean="studenttarget"/>
          24??</property>
          25
          26</bean>
          27
          28
          29
          30
          31</beans>


          ? 現(xiàn)在開(kāi)始寫(xiě)測(cè)試類,Test.java
          ?1/**
          ?2?*?
          ?3?*/

          ?4package?com;
          ?5
          ?6import?org.springframework.context.ApplicationContext;
          ?7import?org.springframework.context.support.FileSystemXmlApplicationContext;
          ?8
          ?9import?com.dragon.study.IStudent;
          10
          11/**
          12?*?@author?dragon
          13?*
          14?*/

          15public?class?Test?{
          16
          17????/**
          18?????*?@param?args
          19?????*/

          20????public?static?void?main(String[]?args)?{
          21????????//?TODO?Auto-generated?method?stub
          22??????ApplicationContext?ctx?=?
          23??????????new?FileSystemXmlApplicationContext("/com/dragon/applicationContext.xml");
          24??????
          25??????IStudent?person?=?(IStudent)ctx.getBean("student");
          26??????person.addStudent("dragon");
          27??????
          28//??????person.addStudent("javadragon");
          29????}

          30
          31}

          32
          posted on 2006-12-03 03:29 javadragon 閱讀(76761) 評(píng)論(59)  編輯  收藏

          評(píng)論:
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2007-02-22 11:41 | freesky_zh
          這個(gè)類public class BeforeAdvice implements MethodBeforeAdvice
          好像有點(diǎn)問(wèn)題,在Eclipse中會(huì)報(bào)錯(cuò)。  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2007-02-28 20:34 | javadragon
          我又試了次,沒(méi)有錯(cuò)呀,如果你的還出現(xiàn)錯(cuò)誤,
          請(qǐng)你把整個(gè)工程發(fā)給我試下
          郵箱:newlong@126.com  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2007-03-10 10:54 | weichenggao
          不錯(cuò),好例子,不過(guò)運(yùn)行該程序,還需要加入commons-logging.jar
          請(qǐng)大家注意!  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2007-03-24 00:31 | 鳥(niǎo)不生蛋蛋的地方
          Nice,u've done a good job, keep practice, keep thinking, then move forward. God's watching u ,ahahaha~  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2007-03-26 20:25 | javadragon
          Thank you! if you don't guided i to how to program,my program capability can't improve. you give me a importnat thing--thinking.thanks again ! i will become stronger. Sorry for my english.haha  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2007-10-11 13:38 | pcz
          AfterAdvice

          不能在方法執(zhí)行后 在執(zhí)行啊!  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2007-10-12 22:06 | javadragon
          有什么問(wèn)題?  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2007-11-12 18:16 | landon
          good job  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2008-04-16 20:42 | 00?
          好不錯(cuò),可以運(yùn)行,,太需要了,謝謝了,,  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2008-04-20 23:01 | huangzongbai
          我按照你的方法去做了,可是Advice不能調(diào)用~`,很是郁悶.  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2008-07-14 16:59 | zuoshaobiao
          不錯(cuò) 不錯(cuò) 終于弄出來(lái)了。謝謝了、  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子[未登錄](méi) 2008-07-30 20:36 | Rain
          雖然將Aop這個(gè)例子寫(xiě)的不錯(cuò)!能很好的將要經(jīng)常使用的代碼變成一個(gè)“方面”
          但是注釋要加強(qiáng)!  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子[未登錄](méi) 2008-07-30 20:52 | Rain
          在Spring Appactiocontext.xml配置文件;你定義的前置,后置;環(huán)繞等通知在配置文件中實(shí)現(xiàn)了代理(org.springframework.aop.framework.ProxyFactoryBean)
          以此將通知放入到了原Bean中;這樣才能使原Bean中方法調(diào)用時(shí)自動(dòng)執(zhí)行通知
          這是其一》
          <property name="proxyInterfaces">
          <property name="interceptorNames">
          <property name="target">
          這三個(gè)屬性是一定要配置的
          第一是被代理的接口(IStudent)
          第二是通知列表(前置,后置;環(huán)繞)上面定義的三個(gè)類
          第三是被代理的原Bean(StudentImpl )

            回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子[未登錄](méi) 2008-08-01 15:08 |
          好不錯(cuò),可以運(yùn)行,,太需要了,謝謝了,請(qǐng)你把整個(gè)工程發(fā)給我試下
          郵箱:2008-sina@163.com   回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2008-08-27 14:14 | zackey
          @freesky_zh
          因?yàn)闆](méi)有導(dǎo)入spring.jar  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2008-09-11 10:49 | 啊正
          不錯(cuò)啊~~~謝謝LZ分享!!!  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2008-09-24 16:13 | wtf110
          我動(dòng)手做了下,真的好用啊!我感覺(jué)明白了點(diǎn)aop!謝謝樓主!!  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子[未登錄](méi) 2009-02-17 23:59 | anna
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子[未登錄](méi) 2009-02-18 00:12 | wen
          @Rain
          great, 你的注釋是畫(huà)龍點(diǎn)睛一筆阿  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2009-09-30 11:51 | 淡定
          No setter found for property 'target' in class 'org.springframework.aop.framework.ProxyFactoryBean'

          在第22行中出現(xiàn)。我加入了aop包啊。為什么找不到
          22 <property name="target">
          23 <ref bean="studenttarget"/>
          24 </property>

            回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2009-11-05 16:16 |
          運(yùn)行以后會(huì)報(bào)異常啊
          Error creating bean with name 'student' defined in file [E:\workspace\aop2\src\applicationContext.xml]: Cannot resolve reference to bean 'studenttarger' while setting bean property 'targer'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'studenttarger' is defined  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子[未登錄](méi) 2009-11-07 19:49 | dragon
          @濤
          bean id有沒(méi)有寫(xiě)對(duì)?
          targer =>target  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2010-02-02 17:19 | Erwin
          博主你好!
          雖然你的博文已經(jīng)發(fā)表很久了,但是經(jīng)過(guò)一番查找比較,我覺(jué)得是最好的!
          同時(shí)希望能將運(yùn)行的測(cè)試結(jié)果貼出來(lái),這樣文章才算完整而且方便其他人的閱讀。
          另:請(qǐng)問(wèn)能否引用?  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2010-02-10 11:22 | javadragon
          @Erwin
          可以引用。
          最近幾個(gè)項(xiàng)目都沒(méi)有用spring,過(guò)完年如果有空再整理下,主要還是自己懶,呵呵  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2010-03-10 10:42 | 成亟亟
          您好!dragon。
          我剛剛接觸spring,想跑些小例子熟悉熟悉,由于本人比較愚鈍,網(wǎng)上實(shí)在是找不到那種step by step的文章,感覺(jué)您的文字簡(jiǎn)潔明了,可是實(shí)在是不清楚該怎樣把這個(gè)例子跑在我的eclipse里,可否把您的工程發(fā)給我嘞?謝謝!
          scaramouchben@tom.com  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子[未登錄](méi) 2010-05-03 15:13 | 123
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子[未登錄](méi) 2010-07-20 11:56 | 微風(fēng)
          我遇到了和一樓一樣的問(wèn)題,spring.jar包引入了,可還是不行。為什么???  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子[未登錄](méi) 2010-07-20 16:02 | 微風(fēng)
          搞點(diǎn)了,少了個(gè)這個(gè)aopalliance-1.0.jar包  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2010-07-27 12:50 | wangsan
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2010-10-06 20:30 | 查正濱
          代碼沒(méi)有任何問(wèn)題,這個(gè)問(wèn)題我看了好幾天,今天終于解決了,謝謝樓主。  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2011-04-12 15:35 | 啊啊啊
          代碼沒(méi)有任何問(wèn)題,也很簡(jiǎn)單明了,謝謝樓主  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2011-04-13 21:37 | 地痞張三
          這個(gè)例子很有幫助,謝謝樓主的幸苦勞動(dòng)  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2011-07-18 14:36 | 產(chǎn)自海南島的驢肉火燒
          小例子很好用,謝謝。  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2011-08-27 09:06 | zhong
          代碼運(yùn)行,aop的通知代碼沒(méi)運(yùn)行出來(lái)呢,也沒(méi)報(bào)錯(cuò)  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2011-10-13 16:42 | tesoqop
          可以運(yùn)行,但是aop的通知代碼沒(méi)有運(yùn)行出來(lái),不知道 為什么。。  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2011-10-13 17:03 | tesoqop
          剛才仔細(xì)的又看了一遍,發(fā)現(xiàn)是自己搞錯(cuò)了。
          現(xiàn)在可以啦。afteradvice還沒(méi)有運(yùn)行出來(lái)。  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2011-10-17 20:12 | ee
          如果這就算aop 的話 真的是不難  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2011-11-16 16:44 | 塵埃
          不知樓主是否遺忘了這個(gè)例子,我看了這個(gè)例子后,也運(yùn)行了,但是我想知道這個(gè)程序的運(yùn)行順序是什么,就是說(shuō)在哪配置了它的運(yùn)行順序嗎(我也沒(méi)看到啊),為什么就先走before,然后走compareInterceptor,而且這里面怎么去調(diào)用impl里的方法的,最后走after?求樓主解答,不勝感激~~  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2011-11-20 19:41 | javadragon
          @塵埃
          執(zhí)行順序是通過(guò)繼承spring的接口before,afterReturning等來(lái)實(shí)現(xiàn)的,有興趣的話,可以去看下spring aop的源碼  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2012-04-23 15:07 |
          我覺(jué)得你這個(gè)例子是調(diào)用一個(gè)方法并打印,如果參數(shù)不滿足條件,則不調(diào)用方法,和不如直接if,else就可以搞定呢?  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2012-11-16 16:54 | 44
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子[未登錄](méi) 2013-03-25 11:12 | haha
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子[未登錄](méi) 2013-06-03 14:34 | wayne
          最好吧jar包列一下 免得有些人不清楚錯(cuò)在哪里  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2013-08-27 10:29 | 對(duì)方
          @Rain
          <property name="proxyInterfaces"> 這個(gè)去掉也可以執(zhí)行目標(biāo)方法  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2013-08-28 00:35 | GHF
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2013-11-11 15:49 | jki
          @freesky_zh應(yīng)該還差aopalliance.jar這個(gè)jar包  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2014-03-27 18:03 | 凨不止
          我是初學(xué)者,可以發(fā)工程到我郵箱么835060947@qq.com , /thx感謝  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2014-07-06 21:59 | 飛花一夜
          很贊的入門例子,一次成功!
          ps:這里的編輯器沒(méi)有復(fù)制功能,太討厭了!  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2014-08-13 15:00 | 你爸
          @javadragon
          煞筆  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2014-08-19 10:26 | France.
          其實(shí)我是來(lái)學(xué)習(xí)思想 而不是實(shí)現(xiàn),,呵呵 剛剛學(xué) 感覺(jué)對(duì)aop了解了一點(diǎn),謝謝樓主  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2014-10-30 14:56 | 游客
          不錯(cuò),簡(jiǎn)單明了,我個(gè)人覺(jué)得:如果再注明應(yīng)該導(dǎo)入的包,會(huì)更好。  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子[未登錄](méi) 2014-12-18 16:39 | king
          spring aop 這樣我嘗試也可以攔截到,不過(guò)目前我的項(xiàng)目不是ApplicationContext ctx =
          new FileSystemXmlApplicationContext("etc/applicationContext.xml");

          ServerController p= (ServerController)ctx.getBean("serverController");
          p.test();
          這樣調(diào)用,是直接在controller類中@Autowired注入service,通過(guò)調(diào)用controller的方法,就是沒(méi)有攔截到,這是什么原因?  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子[未登錄](méi) 2015-01-23 10:31 | 1
          中國(guó)人說(shuō)什么洋文 草泥馬@javadragon
            回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子[未登錄](méi) 2015-04-02 16:58 | Hill
          @king
          貌似不能用注解,不用注解,用樓主的調(diào)用方式就可以了  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2015-06-09 16:52 | 雷鋒
          繼承MethodBeforeAdvice出錯(cuò), 我的原因是缺少org.aopalliance-1.0.0.jar的包,我是在網(wǎng)上搜的,放進(jìn)項(xiàng)目后錯(cuò)誤消失  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子[未登錄](méi) 2015-07-29 11:54 |
          你這個(gè)applicationContext.xml放在哪里 我運(yùn)行下找不到xml文件   回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2015-11-16 17:08 | 哆啦雷
          @杰
          不要用FileSystemXmlApplicationContext這個(gè)包,

          你試試import org.springframework.context.support.ClassPathXmlApplicationContext,

          相應(yīng)的方法也換成ClassPathXmlApplicationContext("applicationContext.xml")  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子 2015-11-16 17:14 | 哆啦雷
          這是我lib下的幾個(gè),都是極易引發(fā)缺包錯(cuò)誤的包.
          也許有多余的,不過(guò)多多益善咯

          commons-logging-1.0.4.jar
          jstl.jar
          spring-webmvc.jar
          spring.jar
          standard.jar  回復(fù)  更多評(píng)論
            
          # re: 一個(gè)簡(jiǎn)單的Spring的AOP例子[未登錄](méi) 2016-04-12 21:07 | 111
          @鳥(niǎo)不生蛋蛋的地方
          wo qu,u english is very good.  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 宝坻区| 和龙市| 贵南县| 页游| 栾城县| 灵川县| 枝江市| 南木林县| 汤原县| 邵武市| 泸定县| 永顺县| 虎林市| 铜川市| 衡山县| 卓资县| 宜宾市| 丹东市| 禄丰县| 朝阳区| 莱阳市| 小金县| 邯郸县| 承德市| 福鼎市| 筠连县| 晴隆县| 资中县| 蒙自县| 永靖县| 恭城| 鸡泽县| 桃园县| 金塔县| 邮箱| 九龙县| 韶山市| 吉林市| 密云县| 道孚县| 东海县|