Spring Cloud教程-创建一个简单的微服务
创建一个简单的微服务
步骤 1:使用 Spring Initializr 创建一个 Maven 项目:https://start.spring.io/
步骤 2:选择 Spring Boot 版本为 2.2.0 M6 或更高版本。不要选择快照版本。
步骤 3:提供 Group 名称。在我们的案例中为 om.javatiku。
步骤 4:提供 Artifact id。我们提供了 limits-service。
步骤 5:添加以下依赖项:Spring Web, Spring Boot DevTools, Spring Boot Actuator, Config Client。
步骤 6:点击 Generate the project 按钮。将会下载一个 zip 文件,将其解压到硬盘上。
步骤 7:现在打开 eclipse。导入创建的 Maven 项目。下载所需文件需要一些时间。
步骤 8:项目下载完毕后,转到 src/main/java。打开 LimitsServiceApplication。
步骤 9:现在将 LimitsServiceApplication.java 运行为 Java 应用程序。
它在端口 8080 上启动了 Tomcat(http)。
现在,我们将在上面的项目中添加一些服务。为此,我们需要按照以下步骤进行操作:
步骤 1:打开 application.properties 文件并写入以下代码:
spring.application.name=limits-service //name of application
步骤 2:在包 cn.javatiku.microservices.limitsservice 下的 src/main/java 文件夹中创建一个名为 LimitsConfigurationController.java 的类文件,并编写以下代码:
package cn.javatiku.microservices.limitsservice;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.javatiku.microservices.limitsservice.bean.LimitConfiguration;
@RestController
public class LimitsConfigurationController
{
@GetMapping("/limits")
public LimitConfiguration retriveLimitsFromConfigurations()
{
return new LimitConfiguration(1000, 1);
}
}
步骤 3:在包 cn.javatiku.microservices.limitservice.bean 下的 src/main/java 文件夹中创建一个名为 LimitConfiguration.java 的类文件,并编写以下代码:
package cn.javatiku.microservices.limitsservice.bean;
public class LimitConfiguration
{
private int maximum;
private int minimum;
//no-argument constructor
protected LimitConfiguration()
{
}
//generating getters
public int getMaximum()
{
return maximum;
}
public int getMinimum()
{
return minimum;
}
//genetrating constructor using fields
public LimitConfiguration(int maximum, int minimum)
{
super();
this.maximum = maximum;
this.minimum = minimum;
}
}
在浏览器中键入 localhost:8080/limits 并按回车键,我们将得到 JSON 响应作为输出。
输出
{
maximum: 1000,
minimum: 1
}
将服务添加到 application.properties 中
在上一个程序中,我们将根据要求修改代码。
现在我们从 application.properties 文件中调用 limits-service。在此文件中,我们正在配置一些值。
limits-service.minimum=99
limits-service.maximum=9999
在 Spring Boot 中,有一种更好的方法可以使用注解 @ConfigurationProperties 从配置中读取值。
步骤 1:在包 cn.javatiku.microservices.limitservice 下的 src/main/java 文件夹中创建一个名为 Configuration.java 的类。
步骤 2:添加注解 @Component 和 @ConfigurationProperties。
步骤 3:声明两个变量 minimum 和 maximum。
步骤 4:如果我们使用配置文件,则需要生成 getter 和 setter。
Configuration.java 文件如下所示。
package cn.javatiku.microservices.limitsservice;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties("limits-service")
public class Configuration
{
private int maximum;
private int minimum;
public void setMaximum(int maximum)
{
this.maximum = maximum;
}
public void setMinimum(int minimum)
{
this.minimum = minimum;
}
public int getMaximum()
{
return maximum;
}
public int getMinimum()
{
return minimum;
}
}
步骤 5:现在转到 LimitsConfigurationController.java 文件并修改代码。在这里我们将使用 Configuration。
package cn.javatiku.microservices.limitsservice;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.javatiku.microservices.limitsservice.bean.LimitConfiguration;
@RestController
public class LimitsConfigurationController
{
@Autowired
private Configuration configuration;
@GetMapping("/limits")
public LimitConfiguration retriveLimitsFromConfigurations()
{
//getting values from the properties file
return new LimitConfiguration(configuration.getMaximum(), configuration.getMinimum());
}
}
现在刷新浏览器页面。它将显示已配置在 application .properties 文件中的更新值的 JSON 格式。
输出
{
maximum: 999,
minimum: 99
}