Spring Cloud教程-设置货币转换微服务
设置货币转换微服务
在前一节中,我们已经创建了currency-exchange-service。现在我们将创建一个currency-conversion-service,该服务与currency-exchange-service进行通信。
步骤1: 打开浏览器并输入https://start.spring.io/
。
- 提供组名javatiku.microservice和Artifact currency-conversion-service。
- 添加依赖项:Spring web,DevTools,Actuator和Config Client。
- 单击Generate,它会下载创建的项目。
步骤2: 在Spring Tool Suite (STS) 中导入下载的项目。
文件 -> 导入 -> 选择现有的Maven项目 -> 下一步 -> 浏览 -> 选择项目 -> 完成。
导入项目需要一些时间。
步骤3: 打开application.properties文件并配置应用程序名称和端口号。
application.properties
spring.application.name=currency-conversion-service
server.port=8100
currency-conversion-service运行在端口8100上。
在下一节中,我们将创建一个服务,该服务与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的类,并定义以下字段:
- private Long id;
- private String from;
- private String to;
- private BigDecimal ConversionMultiple;
- private BigDecimal quantity;
- private BigDecimal totalCalculatedAmount;
- private int port;
步骤5: 生成Getters和Setters。
步骤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
在上面的响应中,“from”,“to”和“quantity”变量从路径中提取。我们已经硬编码了其他变量。
在下一步中,从currency-conversion-service,我们将调用currency-exchange-service。我们还将确定conversion multiple是多少,并将使用该金额(conversion multiple)来计算总金额。我们还将使用响应中包含的端口。