Registrazione del servizio con Eureka

In questo capitolo imparerai in dettaglio come registrare l'applicazione del servizio Spring Boot Micro nel server Eureka. Prima di registrare l'applicazione, assicurati che Eureka Server sia in esecuzione sulla porta 8761 o prima compila l'Eureka Server ed eseguilo. Per ulteriori informazioni sulla creazione del server Eureka, fare riferimento al capitolo precedente.

Innanzitutto, è necessario aggiungere le seguenti dipendenze nel nostro file di configurazione della build per registrare il microservizio con il server Eureka.

Gli utenti Maven possono aggiungere le seguenti dipendenze nel file pom.xml file -

<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>

Gli utenti Gradle possono aggiungere le seguenti dipendenze nel file build.gradle file -

compile('org.springframework.cloud:spring-cloud-starter-eureka')

Ora, dobbiamo aggiungere l'annotazione @EnableEurekaClient nel file di classe dell'applicazione Spring Boot principale. L'annotazione @EnableEurekaClient fa sì che l'applicazione Spring Boot agisca come un client Eureka.

La principale applicazione Spring Boot è la seguente:

package com.tutorialspoint.eurekaclient;

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

@SpringBootApplication
@EnableEurekaClient
public class EurekaclientApplication {
   public static void main(String[] args) {
      SpringApplication.run(EurekaclientApplication.class, args);
   }
}

Per registrare l'applicazione Spring Boot in Eureka Server, dobbiamo aggiungere la seguente configurazione nel nostro file application.properties o application.yml e specificare l'URL del server Eureka nella nostra configurazione.

Il codice per il file application.yml è fornito di seguito:

eureka:
   client:
      serviceUrl:
         defaultZone: http://localhost:8761/eureka
      instance:
      preferIpAddress: true
spring:
   application:
      name: eurekaclient

Il codice per il file application.properties è fornito di seguito:

eureka.client.serviceUrl.defaultZone  = http://localhost:8761/eureka
eureka.client.instance.preferIpAddress = true
spring.application.name = eurekaclient

Ora aggiungi Rest Endpoint per restituire String nell'applicazione Spring Boot principale e la dipendenza Web Spring Boot Starter nel file di configurazione della build. Rispettare il codice riportato di seguito -

package com.tutorialspoint.eurekaclient;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@EnableEurekaClient
@RestController
public class EurekaclientApplication {
   public static void main(String[] args) {
      SpringApplication.run(EurekaclientApplication.class, args);
   }
   @RequestMapping(value = "/")
   public String home() {
      return "Eureka Client application";
   }
}

Di seguito viene fornito l'intero file di configurazione.

For Maven user - pom.xml

<?xml version = "1.0" encoding = "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>
   <groupId>com.tutorialspoint</groupId>
   <artifactId>eurekaclient</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <packaging>jar</packaging>

   <name>eurekaclient</name>
   <description>Demo project for Spring Boot</description>

   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.5.9.RELEASE</version>
      <relativePath/> <!-- lookup parent from repository -->
   </parent>

   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      <java.version>1.8</java.version>
      <spring-cloud.version>Edgware.RELEASE</spring-cloud.version>
   </properties>

   <dependencies>
      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-eureka</artifactId>
      </dependency>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-test</artifactId>
         <scope>test</scope>
      </dependency>
   </dependencies>
   
   <dependencyManagement>
      <dependencies>
         <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
         </dependency>
      </dependencies>
   </dependencyManagement>
   
   <build>
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
      </plugins>   
   </build>
   
</projecta>

For Gradle user – build.gradle

buildscript {
   ext {
      springBootVersion = '1.5.9.RELEASE'
   }
   repositories {
      mavenCentral()
   }
   dependencies {
      classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
   }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'

group = 'com.tutorialspoint'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
   mavenCentral()
}
ext {
   springCloudVersion = 'Edgware.RELEASE'
}
dependencies {
   compile('org.springframework.cloud:spring-cloud-starter-eureka')
   testCompile('org.springframework.boot:spring-boot-starter-test')
   compile('org.springframework.boot:spring-boot-starter-web')   
}
dependencyManagement {
   imports {
      mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
   }
}

È possibile creare un file JAR eseguibile ed eseguire l'applicazione Spring Boot utilizzando i seguenti comandi Maven o Gradle:

Per Maven, puoi usare il seguente comando:

mvn clean install

Dopo "BUILD SUCCESS", è possibile trovare il file JAR nella directory di destinazione.

Per Gradle, puoi utilizzare il seguente comando:

gradle clean build

Dopo "BUILD SUCCESSFUL", è possibile trovare il file JAR nella directory build / libs.

Ora, esegui il file JAR usando il comando come mostrato -

java –jar <JARFILE>

Ora, l'applicazione è stata avviata sulla porta Tomcat 8080 e l'applicazione Eureka Client è registrata con il server Eureka come mostrato di seguito:

Premi l'URL http: // localhost: 8761 / nel tuo browser web e puoi vedere che l'applicazione Eureka Client è registrata con Eureka Server.

Ora premi l'URL http://localhost:8080/ nel browser Web e visualizzare l'output Rest Endpoint.