- koji
- 常連さん
- 会議室デビュー日: 2005/07/14
- 投稿数: 28
|
投稿日時: 2006-02-16 18:51
こんにちは。
既存のサーバサイドJavaのWebアプリケーションのあるパターンにマッチしたメソッド
を実行した時にログを出力したいと思っています。
http://www.atmarkit.co.jp/fjava/rensai3/springdi03/springdi03_2.html
を参考にして、WebアプリケーションでSpring AOPの機能を試そうとしてます。
この例ではJavaアプリケーションなので、mainで
コード: |
|
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringTest {
public static void main(String args[]){
BeanFactory contxt = (BeanFactory)new ClassPathXmlApplicationContext("applicationContext.xml"); // @
IHelloWorldBean hello = (IHelloWorldBean)contxt.getBean("helloworld"); // A
hello.helloworld();
}
}
|
のようにやっています。WebアプリでAOPを試そうとしているのですが、
Aの設定はどうやれば良いのでしょうか?
@の設定は以下のようにやりました。
・web.xmlにapplicationContext.xmlの設定
コード: |
|
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
|
applicationContext.xml内にAOPとして定義した<bean id="helloworld"....
をWebアプリケーションに設定しなければならないと思うのですが、その方法が
わかる方、是非教えてください。
|
- hiro
- 常連さん
- 会議室デビュー日: 2005/03/10
- 投稿数: 32
|
投稿日時: 2006-02-17 10:46
http://wiki.bmedianode.com/Spring/?Spring+Framework
を参考にされてはどうでしょう?
「入門記」にAOPに関する情報が細かく掲載されてますよ
|
- koji
- 常連さん
- 会議室デビュー日: 2005/07/14
- 投稿数: 28
|
投稿日時: 2006-02-22 16:37
hiroさん、ありがとうございます。
該当箇所を読んでみましたが、いまだ解決できません。
もうちょっと詳しく隅々まで読んでみたいと思います。
|
- hiro
- 常連さん
- 会議室デビュー日: 2005/03/10
- 投稿数: 32
|
投稿日時: 2006-02-23 14:46
web.xmlに
Listenerを利用する場合
コード: |
|
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
|
ContextLoaderServletを使用する場合
コード: |
|
<servlet>
<servlet-name>contextLoaderServlet</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>contextLoaderServlet</servlet-name>
<url-pattern>/contextLoader</url-pattern>
</servlet-mapping>
|
を記述してますか?
テストを行うサーブレットには
コード: |
|
public doPost(HttpServletRequest request ・・・・・) {
WebApplicationContext ct = org.springframework.web.context.support.WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
IHelloWorldBean hello = (IHelloWorldBean)ct.getBean("helloworld");
hello.helloworld();
}
|
とします(検証してないので動作するかわかりませんが)
[ メッセージ編集済み 編集者: hiro 編集日時 2006-02-23 14:48 ]
|
- koji
- 常連さん
- 会議室デビュー日: 2005/07/14
- 投稿数: 28
|
投稿日時: 2006-03-02 18:01
hiroさん、ありがとうございました。
解決しました。
Listenerは設定していました。それ以外、特に設定する必要が無いという
事がわかりました。何が間違っていたかと言いますと、ある書籍を参考に
していまして、その本の通りにAround Adviceを実装したらうまくいきま
せんでしたが、Webなどを参考にし、その通りに実装する事によって、う
まくいきました。
applicationContext.xmlの書き方自体もその書籍のサンプルではビルド
エラーが出てましたので、その書籍が間違っている可能性も、極僅かです
があると思います。
|