applicationContext.xml
ルートアプリケーションコンテキスト( )とディスパッチャサーブレット()の両方が次のようdispatcher-servlet.xml
に定義されたWebアプリケーションがあります。web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>
...
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
DispatcherServlet
アクセス制限のため、ルートの親コンテキストからBeanにアクセスすることはできません。
しかし、私たちができるようにしたいのは、兄弟Beanにアクセスすることです。たとえば、私たちdispatcher-servlet.xml
には次のようなものがあります。
<bean id="firstController" class="org.springframework.web.servlet.mvc.multiaction.MultiActionController">
...
</bean>
<bean id="secondController" class="org.springframework.web.servlet.mvc.multiaction.MultiActionController">
...
</bean>
コンストラクター引数として渡されたり、プロパティとして設定されたりすることなくsecondController
、内部からアクセスするにはどうすればよいですか?firstController
WebApplicationContextUtils.getWebApplicationContext(...)
ルート内の兄弟にアクセスするために使用していますapplicationContext.xml
が、子コンテキストでも同じことを実行したいと思います。(子供のうちの1人の中から。)