SpringCloudはユーザーサービスクラスを実装します(サービス登録の追加、ユーザーマイクロサービスのEurekaServerへの登録)

SpringCloud (パート 004) ユーザー サービス クラス (サービス登録の追加、EurekaServer へのユーザー マイクロサービスの登録)

1. 概要

EnableEurekaClient アノテーションを追加して、ユーザー マイクロサービスを EurekaServer に登録します。

2. 導入手順

2.1 Maven リファレンス パッケージの追加

<?xml version="1.0"coding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
         xmlns:xsi="http://www.w3 .org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
 
    <artifactId>springms-provider-user</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 
	
    <parent> 
		<groupId>com.springms. cloud</groupId> 
		<artifactId>springms-spring-cloud</artifactId> 
        <version>1.0-SNAPSHOT</version> 
    </parent> 

    <依存関係> 
        <!-- データベースモジュールにアクセス --> 
        <依存関係>
            <groupId>org.springframework.boot</groupId> 
            <artifactId>spring-boot-starter-data-jpa</artifactId> 
        </dependency> 

        <!-- web模块 --> 
        <dependency> 
            <groupId>org.springframework .boot</groupId> 
            <artifactId>spring-boot-starter-web</artifactId> 
        </dependency> 

        <!-- h2数据库模块 --> 
        <dependency> 
            <groupId>com.h2database</groupId> 
            <artifactId> h2</artifactId> 
            <scope>ランタイム</scope> 
        </dependency> 

        <!-- クライアント検出モジュール --> 
        <dependency>  
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency> 

        <!-- 運用環境の監視と管理のためのモジュール --> 
        <dependency> 
            <groupId>org.springframework.boot</groupId> 
            <artifactId>spring-boot-starter-actuator</artifactId> 
        </dependency > 
    </依存関係> 

</プロジェクト>

2.2 アプリケーション設定ファイルの追加(springms-provider-user\src\main\resources\application.yml)

サーバー:
  ポート: 7900 
spring: 
  jpa: 
    generate-ddl: false 
    show-sql: true 
    hibernate: 
      ddl-auto: none
  データソース:
    プラットフォーム: h2
    スキーマ: クラスパス: schema.sql
    データ: クラスパス: data.sql
  アプリケーション:
    名前: springms -provider-user # 全部小写
ロギング:
  レベル: 
    root: 情報
    org.hibernate: 情報
    org.hibernate.type.descriptor.sql.BasicBinder: TRACE 
    org.bibernate.type.descriptor.sql.BasicExtractor: TRACE 
    com.springms: DEBUG
エウレカ:
  クライアント:
    サービス URL: 
      #defaultZone: http://localhost:8761/eureka/ #不要认证
      defaultZone: http://admin:admin@localhost:8761/eureka #認証が必要です
  インスタンス: 
    prefer-ip-address:trueinstance 
    -id:${ spring.application.name}:${spring.cloud.client.ipAddress}:${spring.application.instance_id:${server.port}} 
    # メタデータテスト
    metadata-map: 
      zone:ABC # eurekaが理解できる要素データ
      hmily: HMILYYLIMH # クライアントの動作には影響しません
# appname: appname-springms-provider-user # アプリ アプリケーションの名前が直接表示され、http://localhost:8761/ アドレスで登録サービスのアプリケーションを確認できます名前

# # ここでは、このホスト名の使用法が十分であることがわかっているので、最初にコメントアウトします。最初にコメントアウトしても後続のテストには影響しません
# hostname: user # その後、http://user:7900/simple を通じてアクセスできます/1 私たちの住所

2.3 H2データベーススクリプトの追加(springms-provider-user\src\main\resources\schema.sql)

テーブルユーザーが存在する場合は削除します。

CREATE TABLE USER( 
	id BIGINT デフォルトで ID として生成、
	ユーザー名 VARCHAR(40)、
	名前 VARCHAR(20)、
	年齢 int(3)、
	残高 DECIMAL(10, 2)、
	PRIMARY KEY(id) 
);

2.4 初期化データを H2 データベースに挿入します (springms-provider-user\src\main\resources\data.sql)

ユーザー (ID、ユーザー名、名前、年齢、残高) の値 (1、'user1'、'张三'、20、100.00) に INSERT します。
ユーザー (ID、ユーザー名、名前、年齢、残高) の値 (2, 'user2', '李四', 22, 100.00) に INSERT します。
ユーザー (ID、ユーザー名、名前、年齢、残高) の値 (3, 'user3', '王五', 24, 100.00) に INSERT します。
ユーザー (ID、ユーザー名、名前、年齢、残高) の値 (4, 'user4', '赵六', 26, 100.00) に INSERT します。
ユーザー (ID、ユーザー名、名前、年齢、残高) の値 (5, 'user5', '李逵', 27, 100.00) に INSERT します。
ユーザー (ID、ユーザー名、名前、年齢、残高) の値 (6、'user6'、'张远'、10、100.00) に INSERT します。
ユーザー (ID、ユーザー名、名前、年齢、残高) の値 (7、'user7'、'迪拜'、60、100.00) に INSERT します。
ユーザーに INSERT (id,
ユーザーに INSERT (id,

2.5 基礎となるデータモデルにアクセスするための DAO インターフェイスを追加します (springms-provider-user\src\main\java\com\springms\cloud\repository\UserRepository.java)

パッケージcom.springms.cloud.repository; 

com.springms.cloud.entity.User をインポートします。
org.springframework.data.jpa.repository.JpaRepository をインポートします。
org.springframework.stereotype.Repository をインポートします。

@Repository
パブリック インターフェイス UserRepository extends JpaRepository<User, Long> { 

}

2.6 エンティティユーザークラスUserの追加(springms-provider-user\src\main\java\com\springms\cloud\entity\User.java)

パッケージcom.springms.cloud.entity; 

java.math.BigDecimalをインポートします。

インポート javax.persistence.Column; 
インポートjavax.persistence.Entity; 
インポート javax.persistence.GeneratedValue; 
インポート javax.persistence.GenerationType; 
インポートjavax.persistence.Id; 

@Entity 
public class User { 
  @Id 
  @GeneratedValue(strategy = GenerationType.AUTO) 
  private Long id; 

  @Column
  プライベート文字列のユーザー名。

  @Column
  プライベート文字列名。

  @Column 
  private 年齢が低い。

  @Column
  プライベート BigDecimal 残高; 

  public Long getId() { 
    this.id を返します。
  }

  public void setId(Long id) { 
    this.id = id; 
  public 

  String getUsername() { 
    this.username を返します。
  public 

  void setUsername(String username) { 
    this.username = ユーザー名; 
  public 

  String getName() { 
    this.name を返します。
  public 

  void setName(String name) { 
    this.name = 名前; 
  public 

  Short getAge() { 
    this.age を返します。
  public 

  void setAge(Short age) { 
    this.age = age; 
  public 

  BigDecimal getBalance() { 
    return this.balance; 
  } 

  public void setBalance(BigDecimal 残高) {
    this.balance = バランス; 
  } 
}

2.7 ユーザーの追加 Web アクセス層コントローラー (springms-provider-user\src\main\java\com\springms\cloud\controller\UserController.java)

パッケージcom.springms.cloud.controller; 

com.google.common.collect.Lists をインポートします。
com.springms.cloud.entity.User をインポートします。
com.springms.cloud.repository.UserRepository をインポートします。
org.springframework.beans.factory.annotation.Autowired をインポートします。
org.springframework.web.bind.annotation.* をインポートします。

java.util.ArrayListをインポートします。
java.util.Listをインポートします。

/** 
 * 用户界面制御層。
 * 
 * @author hmilyylimh 
 * 
 * @version 0.0.1 
 * 
 * @date 2017/9/17 
 * 
 */ 
@RestController 
public class UserController { 

    @Autowired 
    private UserRepository userRepository; 

// @Autowired
// プライベート EurekaClient DiscoveryClient; 

    @GetMapping("/simple/{id}") 
    public User findById(@PathVariable Long id){ 
        return userRepository.findOne(id); 
    } 

// public String serviceUrl(){ 
// InstanceInfo インスタンス = this.discoveryClient.getNextServerFromEureka("SPRINGMS-PROVIDER-USER", false); 
// インスタンスを返します。getHomePageUrl(); 
// } 

    @PostMapping("/user") 
    public User postUser(@RequestBody User user){ 
        System.out.println("@GetMapping(\"user\") 受信パラメータ user: " + user); 
        リターンユーザー。
    @GetMapping 

    ("listAll") 
    public List<User> listAll(){
        ArrayList<ユーザー> リスト = Lists.newArrayList(); 
        ユーザー user1 = 新しいユーザー(1L, "user1"); 
        ユーザー user2 = 新しいユーザー(1L, "user2"); 
        ユーザー user3 = 新しいユーザー(1L, "user3"); 
        ユーザー user4 = 新しいユーザー(1L, "user4"); 
        ユーザー user5 = 新しいユーザー(1L, "user5"); 
        list.add(user1); 
        list.add(user2); 
        list.add(user3); 
        list.add(user4); 
        list.add(user5); 
        リストを返す; 
    } 
}

2.8 ユーザーマイクロサービス起動クラスの追加 (springms-provider-user\src\main\java\com\springms\cloud\MsProviderUserApplication.java)

package com.springms.cloud; 

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.cloud.netflix.eureka.EnableEurekaClient; 

/** 
 * ユーザーサービスクラス (サービスの追加)登録、ユーザー マイクロサービスを EurekaServer に登録します)。
 * 
 * @author hmilyylimh 
 * 
 * @version 0.0.1 
 * 
 * @date 2017/9/17 
 * 
 */ 
@SpringBootApplication 
@EnableEurekaClient 
public class MsProviderUserApplication { 

    public static void main(String[] args) { 
        SpringApplication.run(MsProviderUserApplication.class) ); 
        System.out.println("[[[[[[ユーザー マイクロサービス]]]]]] が開始されました。");
    } 
}

3. テスト

/************************************************ *** ****************************************** 
 1. ユーザー マイクロサービス インターフェイス テスト: 

 1. 注: EnableEurekaClient 
 2. springms-discovery-eureka モジュール サービスを開始し、1 つのポートを開始します; 
 3. springms-provider-user モジュール サービスを開始し、1 つのポートを開始します; 
 4. アドレス http://localhost:7900 を入力しますブラウザーの /simple /1 情報が正常に出力され、ユーザー マイクロサービスが正常であることがわかります。 5.

 ブラウザーにアドレス http://localhost:8761 を入力し、ユーザー名とパスワード admin/ を入力します。管理者が Eureka マイクロサービスに入り、それを Web ページに表示し、ユーザー マイクロサービスが実際に eureka サービスに登録されていることを示します。 6. ブラウザーにアドレス http:// 
 localhost:8761/eureka/apps/springms-provider-user を入力します。 、カスタム <metadata> 情報とユーザー マイクロサービスが表示されます。情報は正常に表示されました; 
 ***************************** **************** ********************************* ***************/ 
 
/** ****************************** ********************** *************************** *********

 2. ユーザー マイクロサービス インターフェイス テスト (springms-discovery-eureka-ha モジュールのテスト、EurekaServer 高可用性クラスターへの EurekaClient クライアント登録のテスト): 1. 注: EnableEurekaClient 2.次
 のように、defaultZone のアクセス アドレス値を変更します。
 # 
 ## ################################################ ##################################
 テスト 2: EurekaServer 高可用性クラスターの
 defaultZoneへの EurekaClient クライアントの登録をテストします。 : http://admin:admin@peer1:8401/eureka,,http://admin:admin@peer2:8402/eureka,,http://admin:admin@peer3:8403/eureka 
 ###### ## ################################################ #### ########################## 
 3. springms-discovery-eureka-ha モジュール サービスを開始し、3 つのポートを開始します
 。 springms-provider- ユーザー モジュール サービスを開始し、1 つのポートを開始します; 
 5. ブラウザーにアドレス http://localhost:7900/simple/1 を入力すると、情報が正常に出力され、ユーザー マイクロサービスが普通;

 6. ブラウザにアドレス http://localhost:8401 を入力し、ユーザー名とパスワード admin/admin を入力して Eureka マイクロサービスに入り、Web ページに表示します。これは、ユーザー マイクロサービスが確かに eureka サービスに登録されていることを示します。ブラウザにアドレス http を入力します
 ://localhost:8401/eureka/apps/springms-provider-user カスタム <metadata> 情報とユーザーのマイクロサービスの関連情報が正常に表示されていることがわかります。ブラウザーのアドレス http:/ / 
 localhost:8402/eureka/apps/springms-provider-user カスタム <metadata> 情報とユーザーのマイクロサービスの関連情報が正常に表示されていることがわかります; 9. アドレス http:/ を入力します。 //ブラウザの localhost 
 :8403/eureka/apps/springms-provider-user カスタム <metadata> 情報とユーザー マイクロサービスの関連情報が正常に表示されていることがわかります; 
 ************ *********************************************** ****** *************************/

おすすめ

転載: blog.csdn.net/2301_76484015/article/details/130422919