SpringマネージドBeanを使用するJavaカスタムタグがたくさんあります。カスタムタグに挿入する方法が見つからないため、すべてのSpring Beanオブジェクトの「getTheObjectINeedBean()」に静的メソッドを提供するヘルパークラスを作成しました。必要..私はこのアプローチがまったく好きではありません。
春に管理されたBeanをカスタムタグに挿入できるようにしたい
方法はありますか?私の研究に関する限り、カスタムタグはコンテナ管理であるため、これを行う方法はないことを理解しています
おかげで、
ビリー
あなたは正しいです。jstlタグでdependency-injectionを使用する簡単な方法はありません。それらはSpringによって管理されておらず、管理できないためです。ただし、(少なくとも)2つの回避策があります。
@Configurable
-aspectJを使用すると、ロード時/コンパイル時にウィーバーを接続できるため、Springによってインスタンス化されていないオブジェクトでもSpring対応にすることができます。こちらをご覧ください
プロジェクトの基本タグクラスを作成し、init(..)
すべてのdoStartTag(..)
メソッドからメソッドを呼び出すことができます。そこで、ServletContext
からpageContext
を取得して、ApplicationContext
(を介してApplicationContextUtils
)スプリングを取得できます。次に:
AutowireCapableBeanFactory factory = appCtx.getAutowireCapableBeanFactory();
factory.autowireBean(this);
どちらのオプションも、追加のコードまたは「ブラックマジック」を必要とするため、完璧ではありません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加