10

プロジェクトをスプリングベースの製品に切り替えたいです。

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

github からオープン ソースの Web アプリケーションの例を見てみましょう: Vaadin-Spring Web Application

web.xml ファイルはここにあります。

ルート コンテキスト ファイルは、ここにあります。

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

spring-boot プロジェクトにも問題を提出しました。

4

1 に答える 1

14

私が知る限り、このアプリケーションは Spring MVC アプリケーションではありません。そうであれば、おそらく移行がはるかに簡単になるでしょう。(github の問題による) 目標は、実行可能な JAR を取得することです。ただし、基本的な計画は、Spring Boot を使用して最初に WAR に移行し、それが機能したら JAR に移行することです。これは非常に単純なアプリなので、実際に行う必要があるのは、を見てweb.xml、関連する Spring Boot 機能に変換することだけです。一般的なガイドを次に示します。

SpringBootServletInitializer(たとえば、 というクラスで)拡張してデプロイ可能な WAR を作成しApplication、Spring Boot@EnableAutoConfigurationアノテーションを追加します。例:

    @Configuration
    @EnableAutoConfiguration
    @ComponentScan
    public class Application extends SpringBootServletInitializer {

        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(Application.class);
        }

次に、いくつかの構成を追加します。

  • @Beanタイプの Aは、その Bean をコンテナにインストールしServletます。ServletRegistrationBean<servlet/><servlet-mapping/>web.xml

  • or@Bean型の Aは同様に動作します ( a と のように) 。FilterFilterRegistrationBean<filter/><filter-mapping/>

  • このApplicationContext場合の は XML ファイルにルートされているため、最も簡単な最初のステップは@Importそれを Spring に入れることApplicationです。@Beanこれは非常に単純なので、定義として数行で再作成できます。

  • 静的リソースは、クラスパス ルートの/public(または/staticまたは/resourcesまたは) に移動できます。/META-INFO/resources

WAR が機能したら、mainメソッドを に追加して実行可能にしますApplication

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

JAR から WAR への変換に関する入門ガイドも参照してください。

前述したように、この特定のアプリの最大の問題は、Spring MVC アプリではないことです。アイルランド人が言うかもしれないように、「もし私がそこに行きたいと思ったら、ここから出発しないでしょう.」これは一般的に興味深い質問ですが、Spring アプリケーションを Spring Boot に移行しようとしている他の人には、ここで一般的なアドバイスを読んで、別の場所で別の議論を始めることをお勧めします。

とにかく、私はこの特定のアプリを変換する際にバッシュを持ち (ソースコードの jar がいいでしょう)、何か新しいことがわかったらこの応答を更新します。

于 2013-11-27T11:54:54.680 に答える