コンテキスト構成<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 を取得する方法が必要です。
どんなガイダンスでも大歓迎です。