创建一个简单的微服务

步骤 1:使用 Spring Initializr 创建一个 Maven 项目:https://start.spring.io/

步骤 2:选择 Spring Boot 版本为 2.2.0 M6 或更高版本。不要选择快照版本。

步骤 3:提供 Group 名称。在我们的案例中为 om.javatiku

步骤 4:提供 Artifact id。我们提供了 limits-service

creating-a-simple-microservice.png

步骤 5:添加以下依赖项:Spring Web, Spring Boot DevTools, Spring Boot Actuator, Config Client

creating-a-simple-microservice-1.png

步骤 6:点击 Generate the project 按钮。将会下载一个 zip 文件,将其解压到硬盘上。

步骤 7:现在打开 eclipse。导入创建的 Maven 项目。下载所需文件需要一些时间。

步骤 8:项目下载完毕后,转到 src/main/java。打开 LimitsServiceApplication

creating-a-simple-microservice-2.png

步骤 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:声明两个变量 minimummaximum

步骤 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
}

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