Spring

parent属性で継承できないもの

parent属性で指定したBean定義の引き継ぐことができますが、すべては継承できません。以下の情報は継承できないので、Child Bean定義で個別に設定しなければなりません。 depends-on autowire-mode, dependency-check singleton scope lazy-init scopeは、pa…

ActionにCGLIBでAOPを適用する

ActionクラスにSpring AOPを適用する場合、XWorkのInterceptorとの相性とか、なにか問題が発生するのではないか?ということで試してみました。 Actionクラスはインターフェースを定義していないので、SpringのAOPを利用するにはCGLIBを使うことになります(…

CGLIBで@SkipValidationが効かない

Springに登録したActionクラスにCGLIBプロキシでAOPを適用すると、@SkipValidationが無視されてしまいます。その結果、本来は@SkipValidationするはずのメソッドがバリデーションされてしまい、以下のようなinputのマッピング定義がない!というエラーが発生…

StrutsSpringObjectFactoryの処理内容

org.apache.struts2.spring.StrutsSpringObjectFactoryは、下記のStruts2用インターフェースを実装したオブジェクトを、Springで生成させることができます。 com.opensymphony.xwork2.Action com.opensymphony.xwork2.interceptor.Interceptor com.opensymph…

StrutsとSpringを連携させる

Struts2はSpringに簡単にインスタンス管理をお任せすることができます。 注意すべきはActionのインスタンスモード。Struts2のアクションはステートを持つので、prototypeかrequestにしないと洒落になりません。 ライブラリの取得 必要なライブラリは、struts…

AOPプロキシをプログラム的に生成する

org.springframework.aop.framework.ProxyFactoryを使えば、AOPプロキシをプログラムで簡単に生成できます。 ※1.X系から提供されているやり方。 ProxyFactory factory = new ProxyFactory(new SimplePojo()); factory.addInterface(Pojo.class); // For use …

JavaSEプロキシとCGLIBプロキシ

Springでは、実行時にターゲットオブジェクトのAOPプロキシを動的に生成することで、AOPを実現しています。 ※AOPプロキシ:AOPフレームワークにより生成されたadviceをもつオブジェクト AOPプロキシを生成する方法としては、2つの方法があります。 JDKのダ…

CustomizableTraceInterceptor

org.springframework.aop.interceptor.CustomizableTraceInterceptorを使うと、任意のフォーマットでトレースログを出力できます。メソッド引数や処理時間を設定だけで出力できるので便利(1.2から)。こういった感じのログが出力されます。 2007-03-14 16:1…

AbstractTraceInterceptor

PerformanceMonitorInterceptorやCustomizableTraceInterceptorの上位クラスで、こいつをいじるとログ出力Interceptorの動作を変えることができます(1.2から)。 例えばデフォルトのログレベルはTRACEレベルですが、isLogEnabledをオーバライドすればログレ…

PerformanceMonitorInterceptorの使い方

org.springframework.aop.interceptor.PerformanceMonitorInterceptorを使うと、メソッドの処理時間を計測できます。 Bean定義ファイルでは、aop:advisorを利用して定義します。 以下の例では、my.colnagoパッケージ以下の全クラスの全メソッドを対象。 <aop:config> </aop:config>

Spring 2.0M1 Released

Springの2.0M1がリリースされていました。主な内容は、こんな感じ。 Simplified, extensible XML configuration Powerful new Spring AOP features and AspectJ 5 integration Asynchronous JMS facilities enabling message-driven POJOs Spring Portlet MV…

1.2.5 Released

1.2.5のリリースがアナウンスされています。 今回はマイナーバージョンアップで、BugFixと細かい機能追加がされている模様。詳しくはこちら http://static.springframework.org/spring/docs/current/changelog.txt次はいよいよ1.3ですね。 そろそろAspectJを…

Adrian Colyer氏がInterface21に

AspectJのAdrian Colyer氏がInterface21に加わったというニュースが、Springのサイトで発表されています。 これでAspectJとSpringの統合が加速しそうです。http://www.springframework.org/node/167