私がしたいこと:
- @Configured アノテーションを Spring で使いたい。AspectJ を有効にする必要があります。コンパイル時のウィービングに AJDT プラグインを使用すると、この問題が解決すると考えました。@Configured オブジェクトに注入されるはずだった依存関係にプラグインをインストールする前は、null のままでした。
私がやった事:
- Eclipse 3.4 用のAJDT: AspectJ 開発ツールプラグインをインストールしました。
- Web プロジェクトを右クリックして、AspectJ プロジェクトに変換しました。
- コンパイル時のウィービングを有効にしました。
機能しないもの:
- Tomcat 6 サーバーを起動すると、例外が発生します*。
その他の情報:
- プロジェクト プロパティの AspectJ Build および AspectJ Compiler 部分で何も構成していません。
- [プリファレンス] の下の JDT ウィービングは、ウィービングが有効になっていると表示します。
- プロジェクトのプロパティの下に、まだ Java ビルド パスと Java コンパイラがあります。そして、以前に構成したように見えます (上記の 2 つの新しいエントリは構成されていません)。
- 私の @Configured オブジェクトファイルのアイコンは、他のファイルのように見えます (つまり、あるべきだと思う側面などの兆候はありません)。ファイル名は (.aj ではなく) MailNotification.java ですが、AspectJ に Spring アノテーションを使用しているので、それでも機能するはずですか?
- Spring WebアプリケーションプロジェクトをAspectJプロジェクトに変換し、AJDTプラグインを使用してアスペクトをファイルに織り込む方法をすべてEclipse 3.4内で教えるチュートリアルなどは見つかりませんでした。そのようなものがそこにある場合、私はそれについて知りたいと非常に興味があります.
私が知りたいこと:
- ここからどこへ行く?Spring の @Configured アノテーションを使いたいだけです。AspectJも必要だと思う@Transactionalも使用しています。
- 可能であれば、自分のニーズが満たされる限り、AspectJ をできるだけ勉強したくありません。このテーマは興味深いようですが、巨大です。私がやりたいことは、上記の 2 つの Spring アノテーションを使用することだけです。
*** Tomcat 6 の起動時の例外:
Caused by: java.lang.IllegalStateException: ClassLoader [org.apache.catalina.loader.WebappClassLoader] does NOT provide an 'addTransformer(ClassFileTransformer)' method. Specify a custom LoadTimeWeaver or start your Java virtual machine with Spring's agent: -javaagent:spring-agent.jar
at org.springframework.context.weaving.DefaultContextLoadTimeWeaver.setBeanClassLoader(DefaultContextLoadTimeWeaver.java:82)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1322)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
... 41 more