2012-02-28 13 views
2

2012年2月28日12:46:54 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh INFO:リフレッシュするorg[email protected]780024:開始日[Tue Feb 28 12:46:54 GMT + 05:30 2012];コンテキスト階層のルート 2012年2月28日12:46:54 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions INFO:クラスパスリソースからのXML Bean定義のロード[newSpringXMLConfig.xml] 2012年2月28日12: 46:55 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons INFO:org.s[email protected]ef98acでのシングルトンの事前インスタンス化:Beanの定義[org.springframework.aop.config.internalAutoProxyCreator 、tri、cir、shape、LAspect];ファクトリ階層のルート 2012年2月28日12:46:55 PM org.springframework.beans.factory.support.DefaultSingletonBeanRegistry destroySingletons INFO:org.s[email protected]ef98acのシングルトンを破棄する:beansを定義する[ org.springframework.aop.config.internalAutoProxyCreator、tri、cir、shape、LAspect];ファクトリ階層のルート スレッド "main"の例外org.springframework.beans.factory.BeanCreationException:クラスパスresource [newSpringXMLConfig.xml]で定義された名前 'tri'のBeanを作成中にエラーが発生しました:Beanの初期化に失敗しました。ネストされた例外は、java.lang.IllegalArgumentExceptionがある:ポイントカットは整形式ではありません:java.lang.IllegalArgumentExceptionが:文字位置4 のget()によって引き起こさ ^春のアスペクト指向プログラミング

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) 
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585) 
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425) 
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) 
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) 
at sam.mainaop.main(mainaop.java:16) 

に期待「名前パターン」ポイントカットではありません整形:1 BUILD SUCCESSFUL(合計時間:1秒)

文字位置で4 のget() ^

at org.aspectj.weaver.tools.PointcutParser.resolvePointcutExpression(PointcutParser.java:316) 
at org.aspectj.weaver.tools.PointcutParser.parsePointcutExpression(PointcutParser.java:294) 
at org.springframework.aop.aspectj.AspectJExpressionPointcut.buildPointcutExpression(AspectJExpressionPointcut.java:195) 
at org.springframework.aop.aspectj.AspectJExpressionPointcut.checkReadyToMatch(AspectJExpressionPointcut.java:181) 
at org.springframework.aop.aspectj.AspectJExpressionPointcut.getClassFilter(AspectJExpressionPointcut.java:162) 
at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:200) 
at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:254) 
at org.springframework.aop.support.AopUtils.findAdvisorsThatCanApply(AopUtils.java:286) 
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findAdvisorsThatCanApply(AbstractAdvisorAutoProxyCreator.java:117) 
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:87) 
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:68) 
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:359) 
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:322) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:407) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1426) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) 
... 11 more 

Javaの検索結果を '名前パターン' を期待

とコード:

package sam; 

import org.aspectj.lang.annotation.Aspect; 
import org.aspectj.lang.annotation.Before; 
import org.aspectj.lang.annotation.Pointcut; 

@Aspect public class LoggingAspect { 
    @Before("get()") 
    public void LoggingAdvice() { 
    System.out.println("Good Afternoon"); 
    } 

    @Before("get()") 
    public void LAdvice() { 
    System.out.println("Good Morning"); 
    } 

    @Pointcut("execution(* get*())") 
    public void get() { } 
} 
+0

に以下のプログラムを避けるべきであると仮定し、私のアスペクトクラス カントは春量Aop 感謝に新しいです...私を助けてください ....エラーが推測されます事前に... – topgunz

+0

パッケージsam; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; @Aspect パブリッククラスLoggingAspect { @Before( "(取得)") 公共ボイドLoggingAdvice(){System.out.printlnは ( "グッドアフタヌーン"); } @Before( "get()") public void LAdvice(){ System.out。println( "おはよう"); } @Pointcut( "実行(*取得する*())") ます。public voidのget() { } } – topgunz

+0

が壊れたのコードを追加し、質問し、私が手に入れたコメント –

答えて

1

spring aop doc

に応じてフルAspectJのポイントカット言語は春でサポートされていない追加のポイントカット指定子をサポートしています。コール、取得、設定、初期化、静的初期化、初期化、ハンドラ、アドバイス実行、incode、cflow、cflowbelow、if、@this、および@withincodeです。

ので、私はあなたが春量Aopで命名競合

+0

からそれを削除するいくつかの詳細を編集してくださいそれは正しいです。 ありがとうございました。本当に有益な情報でした。 – topgunz

関連する問題