2013-11-27 24 views
7

私は自分のプロジェクトをスプリングベースの製品に切り替える必要があります。伝統的なJava Webアプリケーション(web.xmlを使用)からSpringブートに移行するにはどうすればよいですか?

私の最初のステップは、Java Webアプリケーションを生成されたWARファイルから、春の起動によるスタンドアロンの実行可能なJARに変換することです。

Let's take a open source web application example from github.: Vaadin-Spring Web Application

The web.xml file can be found here.

The root-context file can be found here.

私は私が変換を実行するためのいくつかのガイドがあることを願っています。

I have also submit an issue in the spring-boot project.

答えて

12

このアプリケーションは、私の知る限りのSpring MVCアプリケーションではありません - おそらく、それがあった場合に移行するために多くの方が簡単だろう。目標(githubの問題ごと)は、実行可能なJARを取得することです。基本的な計画は、最初にSpring Bootを使用してWARに移行し、その後は動作しているJARに移行することです。それは非常にシンプルなアプリなので、私たちが本当にやるべきことは、web.xmlを見て、それを関連するSpring起動機能に変換することです。

SpringBootServletInitializer(例:Applicationというクラス)を展開して展開可能なWARを作成し、Springブート@EnableAutoConfigurationアノテーションを追加してください。例:タイプServlet又はServletRegistrationBean@Bean容器内のBeanが、それがA

  • web.xml<servlet/><servlet-mapping/>たかのようなことをインストール

    • @Configuration 
          @EnableAutoConfiguration 
          @ComponentScan 
          public class Application extends SpringBootServletInitializer { 
      
           @Override 
           protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
            return application.sources(Application.class); 
           } 
      

      そしていくつかの設定を追加FilterまたはFilterRegistrationBean@Beanも同様に動作します(<filter/>および<filter-mapping/>)。

    • この場合のはXMLファイルに基づいているため、最も簡単な最初のステップは、にある@Importです。これは非常に単純なので、数行で@Beanという定義に再現できます。

    • 静的リソースが/public(または/staticまたは/resourcesまたは/META-INFO/resources)に移動させることができ、クラスパスのルートに

    WARは、例えば、我々はApplicationmainメソッドを追加することによってそれを実行可能にする作業をしたら

    public static void main(String[] args) { 
        SpringApplication.run(Application.class, args); 
    } 
    

    Getting Started Guide on Converting a JAR to a WARも参照してください。

    私が言ったように、この特定のアプリケーションの最大の問題は、それがSpring MVCアプリケーションではないということです。アイルランド人は「私がそこに行きたいなら、私はここから出発しないだろう」と言うかもしれない。"これは一般的に面白い質問ですが、SpringアプリケーションをSpringブートに移行しようと思っている人は、ここでの一般的なアドバイスを読んでおいてください。

    +0

    私はspringbootで、WARからJARに行く傾向がますます高まっています。私は、この特定のアプリケーション(ソースコードのjarファイルはうまくいくでしょう)を見ています。私がspringboot + gwtを使って生産的に作業できるようにする、開発にやさしいpom.xmlをセットアップしようとするのは面倒です。私は実行可能なJARコンセプトを採用しています。 META-INF/resourcesにソースを置き、適切に動作するようにするng dev時間。しかし、ええ、何人かの人々はJARからWARに移動したいと思うかもしれません。アプリエンジン。しかし、一般的にスプリングブートはJARとしてより良いです。 – 99Sono

    +0

    mutli戦争プロジェクトはどうですか? http://stackoverflow.com/questions/35632394/converting-multi-war-application-to-spring-boot – Yosefki

    +0

    @ dave-syer、メモのおかげで、私はこれが非常に役に立ちました。私はこれが非常に古い記事であることを知っています。私は最近、比較的安定したNon SpringMVC WebアプリケーションのSpring Bootへの移行を評価するように求められました。アイデアは、自動拡張機能を使用してクラウドに展開できるように、実行可能なjarスタイルに変換することです。あなたはそれについてのあなたの意見を助言することができましたか?過去3年間にSpring BOOTに変更されたものは、是非とも影響を与えることができます。 – Venkat

    関連する問題