Spring Boot jearseyを統合した例示的なコード


この文章は主に以下の点から紹介します。簡単にjearseyを紹介して、springboot、重点的に紹介してどのようにspringbootとjearseyを統合します。
  • 何がジェームズ
  • ですか?
  • 何がスプリングブックですか?
  • なぜspringboot+jearsey
  • を使いますか?
  • はどのようにspringbootとジェームズ
  • を統合しますか?
    ジェームズとは何ですか
    公式文書を読んでください。jserseyをクリックしてください。RESTful Web Services in Javaは、javaの中の一种のrestfulのフレームワークである。jereyはJAX-RS仕様を使用してAPIの開発を制限しています。jereyがretsfulスタイルの枠組みに基づいている以上、何がretsfulなのか、主に以下の点があります。
  • では、すべてが資源と呼ばれることができるとrestで考えられています。
  • 各リソースはuriによって識別される。このリソースにアクセスするには、対応するuriを通じてアクセスしなければなりません。
  • アクセスリソースはPOST、GET、PUT、DELETEを使用します。POSTは新規インターフェース、GETは取得インターフェース、PUTは修正インターフェース、DELETEは削除インターフェースです。
  • XML/JSONを介して
  • と通信します。
  • は要求ごとに独立しています。
  • 何がスプリングブックですか
    簡単に紹介します。Springbootはspringから派生した枠組みです。bootは軽いという意味です。即ち軽量級のspringです。Sprigbootはspringの特性を継承していますが、springは煩雑すぎると思いますので、spring bootはspringの配置を簡略化しています。複雑な配置ファイルを書く必要がなくても、springの本来の機能特徴を実現できます。pom.xmlに依存を導入するだけで様々なモジュールと技術の統合が可能です。
    どうしてspringboot+jereyを使いますか?
    もしrestを実現するなら、jereyはいい選択です。springbootはjavaの中の軽量級の枠組みで、構成を簡略化でき、複雑ではなく、機能もそろっているので、組み合わせて使うのもいい選択です。
    どのようにspringbootとjearseyを整合しますか?
    1.mavenプロジェクトの作成
    2.springboot配置を追加します。
    (1)pom.xmlにspringbootの親依存を追加する
    
      <!-- Spring Boot     -->
      <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.1.RELEASE</version>
      </parent>
    (2)springboot web依存性とjunnitユニットテスト依存性をpom.xmlに追加し、依存を導入してコンソールで命令mvn clean installを実行する。
    
      <dependencies>
        <!-- Spring Boot web   -->
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    
        <!-- Junit -->
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.12</version>
        </dependency>
      </dependencies>
    
    (3)Sprigbootを作成する入り口:Application.java、この時もう1つのspringbootのmavenプロジェクトが作成されました。man関数を実行すればプロジェクトを開始することができます。確かにライト級ですか?
    
    package com.demo;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    /**
     * Created by Angela on 2017/4/20.
     */
    @SpringBootApplication
    public class Application {
      public static void main(String[] args){
        //springboot   
        SpringApplication.run(Application.class,args);
      }
    }
    
    
    (4)ジェームズ依存を追加し、pom.xmlに依存を追加し、コンソールで命令mvn installを実行する。
    
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jersey</artifactId>
    </dependency>
    (5)ジェームズプロファイルを作成する
    
    package com.demo.config.jersey;
    
    
    import org.glassfish.jersey.server.ResourceConfig;
    import org.springframework.stereotype.Component;
    
    /**
     * Created by Angela on 2017/4/20.
     */
    @Component
    public class JerseyConfig extends ResourceConfig {
    
      public JerseyConfig() {
        //    ,            ,(   ,   ,API )
      }
    }
    
    
    この時、ジェームズベースのspringbootプロジェクトはすでに構築されました。私たちはデモを書いて検証します。
    (6)ジェームズベースのアプリの使用
    設定ファイル:
    作成項目のプロファイルappication.ymlは、nameをlocalと指定し、ポート番号は8081です。以下の通りです。
    
    spring:
    name: local
    server:
      port: 8081
    リソース、すなわちAPIは、ここではget方法の例である。
    
    package com.demo.web;
    
    import com.demo.model.City;
    import org.springframework.stereotype.Component;
    
    import javax.ws.rs.GET;
    import javax.ws.rs.Path;
    import javax.ws.rs.Produces;
    import javax.ws.rs.core.MediaType;
    
    /**
     * Created by Angela on 2017/4/20.
     */
    @Component
    @Path("/demo")
    public class Demo {
    
      //path      ,get        ,produces          ,    JSON
      @Path("/city")
      @GET
      @Produces(MediaType.APPLICATION_JSON)
      public City get(){
        City city = new City();
        city.setId(1L);
        city.setCityName("beijing");
        city.setCityCode("001");
        System.out.println(city.toString());
        return city;
      }
    
    
    
    }
    
    
    ジェームズの設定(2つの登録方式、登録クラス、登録パッケージ):
    
    package com.demo.config.jersey;
    
    
    import com.demo.web.Demo;
    import org.glassfish.jersey.server.ResourceConfig;
    import org.springframework.stereotype.Component;
    
    /**
     * Created by Angela on 2017/4/20.
     */
    @Component
    public class JerseyConfig extends ResourceConfig {
    
      public JerseyConfig() {
         //      
    //    register(Demo.class);
    
        //      
        packages("com.demo.web");
      }
    }
    
    
    ここに小さな穴があります。プロジェクトがjarパッケージの起動時に、パッケージ登録の方式を使用できないと、FileNotFoundに異常が発生します。
    この時、デモはすでに完了しました。ブラウザや他のツールを通じてインタフェースにアクセスできます。http://localhost:8081/demo/cityは、JSON文字列に戻ります。{id”:1、“cityName”:“beijing”、“cityCode”:“001”}。
    プロジェクトコード住所:https://github.com/fengqing0216/learning.git
    以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。