设置货币转换微服务

在前一节中,我们已经创建了currency-exchange-service。现在我们将创建一个currency-conversion-service,该服务与currency-exchange-service进行通信。

步骤1: 打开浏览器并输入https://start.spring.io/

  • 提供组名javatiku.microservice和Artifact currency-conversion-service
  • 添加依赖项:Spring web,DevTools,ActuatorConfig Client
  • 单击Generate,它会下载创建的项目。

setting-up-currency-conversion-microservice.png

步骤2:Spring Tool Suite (STS) 中导入下载的项目。

文件 -> 导入 -> 选择现有的Maven项目 -> 下一步 -> 浏览 -> 选择项目 -> 完成。

导入项目需要一些时间。

步骤3: 打开application.properties文件并配置应用程序名称端口号

application.properties

spring.application.name=currency-conversion-service  
server.port=8100  

currency-conversion-service运行在端口8100上。

setting-up-currency-conversion-microservice-1.png

在下一节中,我们将创建一个服务,该服务与currency-exchange-service进行通信。

为currency-conversion-service创建一个服务

在前一节中,我们使用了EUR到INR,返回了conversionMultiple是多少。currency-exchange-service告诉我们在将货币从EUR转换为INR时,汇率是多少。

在本节中,我们将创建CurrencyCalculationService。它定义了与转换相关的许多功能。

我们将创建一个名为currency-converter的服务,该服务接受两个路径参数“from”和“to”。它还接受数量(我们要转换的金额)。

让我们创建一个currency-conversion-service。

步骤1: 创建一个名为CurrencyConversionController的类。

步骤2: 添加注解@RestController

步骤3: 创建一个GetMapping

CurrencyConversionController.java

package cn.javatiku.microservices.currencyconversionservice;  
import java.math.BigDecimal;  
import org.springframework.web.bind.annotation.GetMapping;  
import org.springframework.web.bind.annotation.PathVariable;  
import org.springframework.web.bind.annotation.RestController;  
@RestController  
public class CurrencyConversionController   
{  
@GetMapping("/currency-converter/from/{from}/to/{to}/ quantity/{quantity}") //where {from} and {to} represents the column   
//return a bean back  
public CurrencyConversionBean convertCurrency(@PathVariable String from, @PathVariable String to, @PathVariable BigDecimal quantity)  
{  
return new CurrencyConversionBean(1L, from,to,BigDecimal.ONE, quantity,quantity,0 );  
}  
}  

步骤4: 创建一个名为CurrencyConversionBean的类,并定义以下字段:

  1. private Long id;
  2. private String from;
  3. private String to;
  4. private BigDecimal ConversionMultiple;
  5. private BigDecimal quantity;
  6. private BigDecimal totalCalculatedAmount;
  7. private int port;

步骤5: 生成GettersSetters

步骤6: 生成constructor并创建一个默认构造函数。

CurrencyConversionBean.java

package cn.javatiku.microservices.currencyconversionservice;  
import java.math.BigDecimal;  
public class CurrencyConversionBean   
{  
private Long id;  
private String from;  
private String to;  
private BigDecimal ConversionMultiple;  
private BigDecimal quantity;  
private BigDecimal totalCalculatedAmount;  
private int port;  
//default constructor  
public CurrencyConversionBean()  
{     
}  
//creating constructor  
public CurrencyConversionBean(Long id, String from, String to, BigDecimal conversionMultiple, BigDecimal quantity, BigDecimal totalCalculatedAmount, int port)   
{  
super();  
this.id = id;  
this.from = from;  
this.to = to;  
ConversionMultiple = conversionMultiple;  
this.quantity = quantity;  
this.totalCalculatedAmount = totalCalculatedAmount;  
this.port = port;  
}  
//creating setters and getters  
public Long getId()   
{  
return id;  
}  
public void setId(Long id)   
{  
this.id = id;  
}  
public String getFrom()   
{  
return from;  
}  
public void setFrom(String from)   
{  
this.from = from;  
}  
public String getTo()   
{  
return to;  
}  
public void setTo(String to)   
{  
this.to = to;  
}  
public BigDecimal getConversionMultiple()   
{  
return ConversionMultiple;  
}  
public void setConversionMultiple(BigDecimal conversionMultiple)   
{  
ConversionMultiple = conversionMultiple;  
}  
public BigDecimal getQuantity()   
{  
return quantity;  
}  
public void setQuantity(BigDecimal quantity)   
{  
this.quantity = quantity;  
}  
public BigDecimal getTotalCalculatedAmount()   
{  
return totalCalculatedAmount;  
}  
public void setTotalCalculatedAmount(BigDecimal totalCalculatedAmount)   
{  
this.totalCalculatedAmount = totalCalculatedAmount;  
}  
public int getPort()   
{  
return port;  
}  
public void setPort(int port)   
{  
this.port = port;  
}  
}  

步骤7: 重新启动应用程序并在浏览器中键入以下URI:

http://localhost:8100/currency-converter/from/USD/to/INR/quantity/1000

setting-up-currency-conversion-microservice-2.png

在上面的响应中,“from”,“to”和“quantity”变量从路径中提取。我们已经硬编码了其他变量。

在下一步中,从currency-conversion-service,我们将调用currency-exchange-service。我们还将确定conversion multiple是多少,并将使用该金额(conversion multiple)来计算总金额。我们还将使用响应中包含的端口。

标签: spring, Spring教程, spring cloud, spring cloud教程, spring cloud框架, spring cloud面试题, springcloud组件, springcloud微服务架构, springcloud入门教程, springcloud主件, spring cloud架构图