1

コンテキスト構成<context:component-scan base-package="com.example.app" />内で使用して自動配線された Bean を持つ spring-mvc アプリケーションがあります。DispatcherServlet

非 Bean クラス、具体的には実装からサービス Bean にアクセスしたい状況がありますRequestContextAwareTag

次のように、ルート コンテキストに登録された Bean にアクセスできます。

ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(
      pageContext.getSession().getServletContext());
MyService svc = ctx.getBean(MyService.class);

Bean がディスパッチャ コンテキストに登録されている場合、NoSuchBeanDefinitionException.

可能であれば、Bean を取得@Serviceせずにルート コンテキストに登録してから、ディスパッチャー コンテキストで Bean を取得することを実際に希望します。問題は、両方をピックアップすることです。@Controller@Controller<context:component-scan/>

これが不可能な場合は、ディスパッチャにアクセスしApplicationContextてサービス Bean を取得する方法が必要です。

どんなガイダンスでも大歓迎です。

4

1 に答える 1