2016-07-22 9 views
0

、applicationContext.xmlをを変更せずに、ブーツを春に伝統的なプロジェクトを変換する背景&要件は次のとおりです。ディスパッチャ-servlet.xml&Tomcatのcontext.xmlに

  1. のApplicationContextを持っている古いプロジェクトがたくさんあります。 xmlと1つまたは複数のディスパッチャ[-XXX] -servlet.xml。これらのプロジェクトは、スプリングブート(Springブートアプリケーションをデプロイするためのデプロイメントツールを開発しましたが、古いプロジェクトは引き続き手動でデプロイされています)を使用している間も動作することを願っています。しかし、@SpringBootApplicationはコンテキストをそのまま構築することはできません。そして、それらを一つずつコードに書き直すのはあまりにもコストがかかると私は思う。
  2. これらのプロジェクトでは、拡張RequestMappingHandlerMappingを使用しているため、ネイティブMVCは使用できません。
  3. jndi定義を含むtomcatのcontext.xmlは、OPによって維持されます。私たちはtomcatのようにロードする必要があります。起動することができ、JNDIを使用せずに

    @Configuration 
    @ImportResource({"classpath:/applicationContext.xml", "classpath:/dispatcher-servlet.xml"}) 
    

    これらの簡単なプロジェクト:

  4. 私はどこ私は現在使用して

web.xmlのに設定された歓迎のファイルを、設定するために見つけることができません。

私の理解として、この場合、applicationContextとdispatcher-servletは同じレベルにあります(dispatcher-servletはapplicationContextの子ではありませんか?)。だから、私はこれが正しく動作することさえ保証できません。

答えて

0

約1年前に同様のことをしましたが、あなたの設定は私たちのものと多かれ少なかれ同じであり、それらのXMLファイルをインポートすることはやりました。唯一のことは、固有の@ComponentScanのためにBeanの競合/重複を避けるために、アプリケーションクラスが異なるパッケージ階層にあることを保証することでした。

同じコンテキストでディスパッチャーサーブレットとアプリケーションコンテキストを使用しても問題は発生しません。ディスパッチャーサーブレットのコンテキストは通常​​、別のコンテキストとして定義され、より幅広いapplicationContextの子ですが、アプリケーションが複数のディスパッチャーサーブレットを必要としている場合にのみ分離が重要であることです。

複数のディスパッチャーサーブレットの場合、異なるWebMVC構成を持つことができるようにするために必要でした。また、サーブレットコンテキスト間で共通のBeanと構成を共有できるようにするapplicationContextがありました。同じ仕事は二度。

関連する問題