Microservice – Find Book Service using Spring Boot
What you will learn here about Microservices
- Microservice – Find Book Service using Spring Boot
prerequisite:
1)Please Start Naming server Before starting the Find Book service. Please visit following link for knowing how to implement naming server in microservice
Eureka naming server in microservices
2)Please Start Book Exchange service Before starting the Find Book service. Please visit following link for Book exchange service
Microservice – Book Exchange Service using Spring Boot
Please click on following link to download Find Book Service project.
Download Find Book Service project (117 downloads)Microservice – Find Book Service using Spring Boot
Please follow the following steps to know to how to consume simple microservice using openfeign.
1)First create a simple maven project
2)Add following dependency in pom.xml which is shown below
Spring boot starter dependency
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
Spring boot open feign dependency
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
Eureka client discovery dependency
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
Dev tools dependency
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency>
3)Please adding following configurations in application.properties of find book service which is shown below
spring.application.name=find-service server.port=8100 eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka
4)Please use @EnableFeignClients annotation to enable openfeign clients which is shown below
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableFeignClients public class FindBookServiceApplication { public static void main(String[] args) { SpringApplication.run(FindBookServiceApplication.class, args); } }
5)Now please create Book entity which is shown below
import org.springframework.stereotype.Component; @Component public class Book { private int id; private String book_Name; private String author; private String description; private double price; private String environment; public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public String getEnvironment() { return environment; } public void setEnvironment(String string) { this.environment = string; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getBook_Name() { return book_Name; } public void setBook_Name(String book_Name) { this.book_Name = book_Name; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } }
6)Now please create feign client to consume another microservice using openfeign client which is shown below
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @FeignClient(name = "exchange-service", url="localhost:8000") public interface ProxyService { @GetMapping("book/id/{id}") public Book getBook(@PathVariable int id); }
7)Now please create rest controller to get data from feign client which is shown below
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; @RestController public class FindBookController { @Autowired ProxyService proxy; @GetMapping("book/id/{id}") public Book getBook(@PathVariable int id) { return proxy.getBook(id); } }
8)Now please run the find book service
9)Now please go to browser and visit URL http://localhost:8100/book/id/1001 which is shown below