サーブレットコンテナとしてtomcat 6でCDI(Weld)を使用しています。コンフィグレーション内にWeldLifecycleListenerを持たせることで、正当性検査注入を行うことはかなり簡単です。春の自動依存性注入
私の質問は、Spring用のWeldLifecycleListenerに相当するApplicationContextからのBeanのインスタンス化を避けることですか?
サーブレットコンテナとしてtomcat 6でCDI(Weld)を使用しています。コンフィグレーション内にWeldLifecycleListenerを持たせることで、正当性検査注入を行うことはかなり簡単です。春の自動依存性注入
私の質問は、Spring用のWeldLifecycleListenerに相当するApplicationContextからのBeanのインスタンス化を避けることですか?
私はWeldLifecycleListener
わからないですが、あなたは春のconfigファイルでのSpring Beanにautowire属性を使用することができ、自動依存性注入
@Resource注釈は、名前による自動配線に使用できます。
Spring設定でBeanを定義したくない場合は、コンポーネントスキャンを使用してコンポーネントを自動検出し、beanの@Componentアノテーションを使用します。この+ @ Autowire/@ Resourceは設定を簡素化します。
春3では、あなたは、このような@Named
や@Inject
としてJSR-330注釈を(http://blog.springsource.com/2009/09/29/spring-framework-3-0-rc1-released/を参照)を使用することができます。あなたはSpring構成ファイルに以下を追加することによって、コンポーネントスキャニングを有効にする
@Named
で注釈クラスが自動的に検出され、インスタンス化される:
${base-package}
が直接的に(すべてのコンポーネントを含むパッケージである
<context:component-scan base-package="${base-package}" />
またはサブパッケージで)。
これまでの回答をありがとうが、私の質問は、豆(java、xml、注釈)を定義する方法ではありませんでした。これまでのところ問題ありません。 Springでは、私はapplicationContextから取得したBean内で依存関係を解決することしかできませんでした。たとえば、次のように動作します。 ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext()); testBean =(TestBean)ctx.getBean( "testBean"); testBean内の依存関係は正しく解決されています。しかし、私は直接testBeanを呼び出すことはできません@AllicationContextを呼び出さずに。 – Sordul
明確にするために、CDIによって管理されるサーブレットがありますが、Springに依存性を注入したいのですか?私はCDI専門家ではありませんが、CDIまたはSpringのいずれかを使用してそれらを管理する必要があると推測します。そうしないと、カスタムコンテキストを取得して依存関係を注入するカスタムコードを追加する必要があります。 –
'@ Component'や' @Controller'をクラスに追加した場合は、依存関係を挿入しようとしているかもしれません(つまり、 'ctx = WebApplicationContext ...'を記述するクラス)。 –
「アプリケーションのコンテキストを避ける」とはどういう意味ですか? –