1

ルート Web アプリケーション コンテキスト XML ファイルは、ポートレット アプリケーションに関連付けられています。ポートレットの Web アプリケーション コンテキスト XML ファイルには、ポートレット固有の Bean が含まれていますが、ルート Web アプリケーション コンテキスト XML ファイルには、ポートレット アプリケーション内のすべてのポートレットにアクセスできる Bean が含まれています。ルート Web アプリケーション コンテキスト XML で定義された Bean は、同じ Bean ID を持つ Bean を定義することにより、ポートレット固有のアプリケーション コンテキスト XML ファイルによってオーバーライドできます。

Portles In Action に書かれています。

ポートレット アプリケーションのルート Web アプリケーション コンテキスト XML ファイルで定義された Bean を使用できるとのことでした。

例はありますか?

ポートレット A に Sping Framework でテスト Bean を定義しました。

コード: web.xml

<listener>
    <listener-class>
      org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>

アプリケーションコンテキスト:

<bean id="testA" class="org.format.liferay.study.TestA" />

ポートレット A で testA を取得します。

TestA test = (TestA)PortletApplicationContextUtils.getWebApplicationContext(getPortletContext()).getBean("testA");

成功です。

ポートレット B を作成する場合

web.xml

<listener>
    <listener-class>
      org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>

applicationContext.xml が空です。

したがって、ポートレット B で testA を取得できません。

liferay でルート アプリケーション コンテキストを設定する方法を知りたい

4

0 に答える 0