SpringCloud微服务系列(2): 创建一个基于Springboot的RESTFul服务

原创 2017年07月31日 19:21:05
SpringCloud微服务系列(2): 创建一个基于Springboot的RESTFul服务
作者:家辉,日期:2017-07-31 CSDN博客: http://blog.csdn.net/gobitan
摘要:在前一篇系列(1)中创建了一个Eureka微服务注册中心。本文将创建一个基于Springboot的RESTFul服务,它可以注册到Eureka Server中。

第一步:创建支持Web和Eureka Discovery的Spring Boot工程
通过http://start.spring.io/创建一个Spring Boot工程,具体参数如下:
Generate a "Maven Project" with "Java" and Spring Boot"1.5.6",
ProjectMetadata Group: cn.dennishucd
Artifact: springboot
Dependencies: Web和Eureka Discovery
然后点击"Generate Project"即可得到一个包含Web和Eureka Discovery的Spring boot工程。
[1] 在生成的工程中,pom.xml中包含了如下核心依赖:
 
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

[2] 在主类SpringBootApplication中包含了,表示开启Eureka注册功能。注解@EnableDiscoveryClient

第二步:添加HelloController类,如下:
package cn.dennishucd.springboot;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    private final Logger logger = Logger.getLogger(getClass());

    @Autowired
    private DiscoveryClient client;

    @RequestMapping("/hello")
    public String hello() {
        ServiceInstance instance = client.getLocalServiceInstance();
        logger.info("/hello, host:"+instance.getHost()+", service_id:"+instance.getServiceId());

        return "Hello World!";
    }
}
本类创建了一个hello服务,返回“Hello World!”

第三步:修改SpringbootApplication主类
在SpringbootApplication类中添加注解@EnableDiscoveryClient,开启服务注册功能。

第四步: 修改application.properties配置文件
在application.properties配置文件中添加如下两行,设置服务名称和服务注册中心地址。
spring.application.name=hello-service
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka
注意:这里的eureka注册地址是“SpringCloud微服务系列(1): 创建Eureka服务注册中心”中建好的。

第五步:启动基于Springboot的Hello服务
注意:启动这一步之前,如果前面的注册中心未启动,需要先启动注册中心。
[1]启动Springboot工程,注册成功会返回打印类似日志:DiscoveryClient_HELLO-SERVICE/PC-20170620QIZK:hello-service - registration status: 204
[2] 在eureka-server的控制台也可以看到类似日志:Registered instance HELLO-SERVICE/PC-20170620QIZK:hello-service with status UP (replication=false)
[3] 然后在http://localhost:1111/的Web上也可以看到当前注册成功的服务。如下所示:


第六步:请求hello服务
访问http://localhost:8080/hello服务,可以在springboot工程中看到类似输出:/hello, host:PC-20170620QIZK, service_id:hello-service。这是之前在HelloController中注入的DiscoveryClient接口对象从服务器注册中心获取的服务相关信息。



版权声明:本文为博主原创文章,未经博主允许不得转载。

spring-cloud 构建一个restful的web服务

构建一个restful的web服务这篇文章告诉你如何通过spring创建一个”hello world”的restful的web服务你会建立什么你会建立一个接受HTTP GET请求的服务:http://...
  • xxzblog
  • xxzblog
  • 2016年12月24日 13:04
  • 7145

史上最简单的SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)

转载请标明出处: http://blog.csdn.net/forezp/article/details/69788938 本文出自方志朋的博客 在上一篇文章,讲了服务的注册和发现。在服...
  • forezp
  • forezp
  • 2017年04月08日 23:25
  • 210834

spring cloud-整合Swagger2构建RESTful服务的APIs

前言 在前面的博客中,我们将服务注册到了Eureka上,可以从Eureka的UI界面中,看到有哪些服务已经注册到了Eureka Server上,但是,如果我们想查看当前服务提供了哪些RESTfu...
  • u010963948
  • u010963948
  • 2017年05月18日 17:17
  • 2022

springcloud整合swagger 界面查看restful api

springcloud整合swagger 图形化界面查看restful api
  • loveuserzzz
  • loveuserzzz
  • 2017年02月13日 17:58
  • 3258

SpringBoot构建微服务实战 之 服务注册

SpringBoot构建微服务实战 之 服务注册本节将以一个实际例子来学习一下使用SpringBoot+Zookeeper来构建微服务之服务的注册。首先学习本文之前请先了解 SpringBoot整合M...
  • u012437781
  • u012437781
  • 2017年11月28日 10:46
  • 159

基于SpringBoot的微服务架构实践

引言 微服务是近期火爆IT业界的新概念,在某种意义上这算是一个全新架构,微服务继承了面向服务架构(SOA)的整体思路,强调将巨石型应用或服务拆分为由微小的服务应用。按照通常理解和定义,微服务是指...
  • u013189665
  • u013189665
  • 2017年03月20日 19:03
  • 4598

基于Spring Boot和Spring Cloud实现微服务架构学习(四)-Spring Cloud总结

基于Spring Boot和Spring Cloud框架开发的微服务架构学习(四)-Spring Cloud总结 Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),之...
  • zeb_perfect
  • zeb_perfect
  • 2016年07月24日 00:48
  • 77801

SpringBoot +SpringCloud微服务示例,整合FreeMaker,AngularJS

SpringBoot +SpringCloud为服服务示例,整合FreeMaker,AngularJS 干货一篇,本节以SpringBoot + SpringCloud为例 构建轻量级微服务,旨在推...
  • u010820702
  • u010820702
  • 2017年03月05日 16:27
  • 5216

使用SpringCloud实战微服务

使用SpringCloud实战微服务
  • ITTechnologyHome
  • ITTechnologyHome
  • 2017年06月28日 00:43
  • 12351

SpringCloud(二)将服务注册到Eureka

在上篇文章中我们已经写好了服务站和消费者。本文将会把两个服务注册到Eureka服务中。 Eureka Server package com.zhuyang.cloud; import org.s...
  • zzzzzz55300411
  • zzzzzz55300411
  • 2017年01月09日 22:59
  • 1453
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SpringCloud微服务系列(2): 创建一个基于Springboot的RESTFul服务
举报原因:
原因补充:

(最多只允许输入30个字)