1

何らかの理由で、次を自動配線できませんViewResolver

@Component
public class JsonMultipleViewFactory
{
    @Autowired
    private ViewResolver viewResolver;

    // ...
}

viewResolver はnull.

クラスJsonMultipleViewFactoryは、スプリング コントローラーで Autowired です。

@Controller
public class HomeController
{
    @Autowired
    private JsonMultipleViewFactory jsonMultipleViewFactory;

    // ...
}

問題を再現する非常に小さな例を含むgithub リポジトリを作成しました。

誰でも私を助けることができますか?

ありがとうございました。

4

2 に答える 2

1

私はあなたの前の質問に答えましたが、答えはありませんでした:

あなたの例でJsonMultipleViewFactoryは、親コンテキスト ( applicationContext.xml) によるコンポーネント スキャンによって検出されます。 InternalResourceViewResolver子コンテキスト ( test-servlet.xml) で定義されます。したがって、親コンテキストが子コンテキストで定義された Bean を認識できないのは正常です。これが を取得する理由です NoSuchBeanDefinitionException。このすべての Bean を同じコンテキストに入れるようにしてください。

于 2012-05-09T17:13:01.020 に答える
1

ビュー リゾルバーを Spring Bean として登録していないようです。次のようなアプリケーション コンテキストに追加する必要があります。

<bean class="package.full.name.ViewResolver" />
于 2012-05-09T17:16:29.553 に答える