スプリングbootプロジェクトをwarパッケージにパッケージ化し、セッション共有を実現


パッケージ形式の変更
pom.xmlにはwarが設定されています
pom.xmlでspring-boot-starter-web依存ノードを見つけ、次のコードを追加します.
<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-webartifactId>
    
    <exclusions>
        <exclusion>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-tomcatartifactId>
        exclusion>
    exclusions>
dependency>

servlet-apiの依存性を追加するには、次の2つの方法があります.いずれかを選択します.
  • 第1種
  • <dependency>
        <groupId>javax.servletgroupId>
        <artifactId>javax.servlet-apiartifactId>
        <version>3.1.0version>
        <scope>providedscope>
    dependency>
    
  • 第2種
  • <dependency>
        <groupId>org.apache.tomcatgroupId>
        <artifactId>tomcat-servlet-apiartifactId>
        <version>8.0.36version>
        <scope>providedscope>
    dependency>
    

    起動クラスを変更し、初期化メソッドを書き換える
    Webに似たものが必要ですxmlの構成はspringコンテキストを起動し、Applicationクラスの同級ディレクトリの下にSpringBootStartApplicationクラスを追加します.そのコードは以下の通りです.
    /**
     *      ,   SpringBootServletInitializer     configure   
     */
    public class SpringBootStartApplication extends SpringBootServletInitializer {
    
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            //           main     Application   
            return builder.sources(Application.class);
        }
    }
    

    Websocket機能付き
    WebSocketConfigを注釈します.JAva(websocket構成クラス)のbean(@beanの行を注釈するだけでいいというものもありますが、テストされていません)
    /*@Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }*/
    

    pom依存jarパッケージの追加
    <dependency>
        <groupId>javaxgroupId>
        <artifactId>javaee-apiartifactId>
        <version>7.0version>
        <scope>providedscope>
    dependency>
    

    パッケージの導入
    プロジェクトルートディレクトリ(pom.xmlを含むディレクトリ)では、コマンドラインにmvn clean package -Dmaven.test.skip=trueと入力し、パッケージの完了を待つと、[INFO]BUILD SUCCESSがパッケージに成功します.次にtargetディレクトリのwarパッケージをtomcatのwebappsディレクトリの下に置いてtomcatを起動すると、自動的に配置を解凍できます.
    最後にブラウザに入力
    http://localhost:[ポート番号]/[パッケージ名]/
    注意:プロジェクトプロファイルポートとtomcatポートは一致する必要はありません.複数回の試験でwarパッケージにすると、プロファイル内のポートが失効し、tomcatで直接設定されたポートが使用されることが証明されたので、プロファイルのポートはいくらでも影響しません.
    リリース成功
    注意:マルチtomcat session共有メソッドの設定
  • 導入依存
  • <dependency>
        <groupId>org.springframework.sessiongroupId>
        <artifactId>spring-session-data-redisartifactId>
    dependency>
    
    
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-data-redisartifactId>
    dependency>
    
  • application.ymlにはセッション格納方式spring.session.store-type=redis
  • が設定.
  • 次にメインクラス(起動クラス)@EnableRedisHttpSession注記
  • を追加する.