基于CloudIDE的微服务开发与调试
引导式阅读
Others
基于CloudIDE的微服务开发与调试
作者
HDC.Cloud
上架时间
2020-01-13 14:33:55

基于CloudIDE的微服务开发与调试

您在体验过程中有任何疑问,都可以在此留言反馈>> 问题反馈

介绍

<span>华为云CloudIDE</span>是面向软件开发者的云端集成开发环境服务,通过浏览器访问即可实现环境获取、代码编写、调试运行、配置管理代码入库、环境访问等能力,同时支持插件扩展。CloudIDE提供移动化开发能力,通过浏览器访问云端集成开发环境,无须安装本地软件,无须消耗本地资源,随时、随地、随心。CloudIDE还具备极速的环境获取能力,可以做到按需获取,计算资源和存储资源灵活配置,对开发语言的支持能做到一键配备。使用华为云CloudIDE,你仅需一个可以上网的浏览器,就可以实现编码、调试、运行你的代码。

本指南将指导开发者通过华为云CloudIDE服务,快速配置和创建一个云端的开发环境,并在环境内完成对微服务的开发活动。通过本指南您将体验到:

  • 申请云端开发环境

  • 查看和运行Java代码

  • 注册端口实现访问预览

  • 编写代码和云端调试

  • 释放开发环境资源

1. 申请和配置开发环境

打开<span>CloudIDE服务首页</span>,如下图(图1)所示: 图1

1.1 点击 “新建实例” 按钮,打开“创建IDE实例”页面,

  • 输入IDE实例名称

  • 选择Java技术栈

  • 选择其他配置(CPU/内存:2U4G,存储容量:5GB,生命周期:30分钟) 如下图(图2)所示: 图2

1.2 点击“下一步”,进入“工程配置”页面,

  • 选择来源 “CodeHub模板仓库”

  • 输入工程名称(任意)

  • 选择样例工程“java-web-spring-sample” 如下图(图3)所示: 图3

1.3 点击“确定”,进入你的云端IDE环境

IDE启动过程中,后端服务为您分配计算和存储资源并做初始化操作,请耐性等待并阅读屏幕上的提示,如下图(图4)所示: 图4 环境连接成功后,您选择的“样例工程”会通过git方式导入到环境中,当看到git导入项目的窗口时,请不要操作。如下图(图5)所示:

图5

全部环境准备就绪后,您现在会看到属于自己的云端IDE环境。如下图(图6)所示: 图6

2. 查看和运行样例工程

2.1 查看工程文件

找到并查看应用配置文件,注意其中定义端口号和访问路径: ./src/main/resources/application.yml

spring: application: name: instance http: encoding: enabled: true charset: UTF-8 main: banner-mode: 'off' server: max-http-header-size: 20000 port: 8080 servlet: context-path: /api swagger: show: true

找到并查看接口处理逻辑文件,注意其中定义的方法和返回值: ./src/main/java/com/huawei/devcloud/demoapp/controller/HelloWorldController.java

package com.huawei.devcloud.demoapp.controller; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/") public class HelloWorldController { @ApiOperation(value = "say") @RequestMapping(value = "/say", method = RequestMethod.GET) public String say(){ return "hello world!"; } }

2.2 运行样例工程

找到并打开应用main()函数所在的文件HelloWorldApplication.java, 在IDE完成自动预编译后相应的main()函数会提供快捷 “Run|Debug”入口,如下图(图7)所示: 图7

点击“Run”即可启动工程运行。

3. 注册端口实现访问预览

3.1 注册访问端口

应用启动后,IDE会自动侦测到对应端口的开放(在本例中是端口8080)并弹出提示框,如下图(图8)所示: 图8

点击“Yes”同意注册端口代理,如下图(图9)所示: 图9

点击“OK”后,完成端口注册代理。

3.2 通过浏览器访问预览

查看已经完成注册代理的端口面板,点击“Access”按钮,可以直接在浏览器中访问本IDE中已经启动并开启侦听的应用对应端口,如下图(图10): 图10

你可能会发现第一次浏览器访问端口并不成功,这是没有输入正确的访问路径所致,如下图(图11): 图11

更正浏览器访问路径(如application.yml文件中设置的那样),你会看到希望的结果,如下图(图12): 图12

关闭执行应用的Terminal窗口可以结束当前应用运行。

4. 代码编辑和断点调试

4.1 编辑代码加入一个新的接口

编辑接口处理逻辑文件,我们加入一个新的接口“time”用来返回服务器日期时间: ./src/main/java/com/huawei/devcloud/demoapp/controller/HelloWorldController.java

package com.huawei.devcloud.demoapp.controller; import io.swagger.annotations.ApiOperation; import java.text.SimpleDateFormat; import java.util.Date; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/") public class HelloWorldController { @ApiOperation(value = "say") @RequestMapping(value = "/say", method = RequestMethod.GET) public String say(){ return "hello world!"; } @ApiOperation(value = "time") @RequestMapping(value = "/time", method = RequestMethod.GET) public String time(){ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str = df.format(new Date()); return str; } }

4.2 设置断点并调试

HelloWorldController.java文件的新增接口代码内设置断点(图中设置在第27行),然后进入Debug界面,如图(图13)所示: 图13

点击“<span>▶</span>”按钮,开始调试代码。 点击“Access”按钮,通过浏览器访问对应的接口,如下图(图14)所示: 图14

访问正确的路径后,在IDE界面可以看到如图(图15)所示: 图15

  • 第27行的断点已经生效
  • 变量的值在左侧Debug窗口可以查看
  • 点击“Continue”按钮可以继续执行

继续执行后,在浏览器得到的结果如图(图16)所示: 图16

5. 清除环境

5.1 关闭运行的IDE实例

在IDE实例内的主菜单选择“File - Close Instance”,在右下角弹出的关闭对话框中选择“Yes”,即可关闭云端IDE实例运行。如下图(图17)所示: 图17

5.2 删除云端IDE实例

实例关闭后会自动跳转到CloudIDE实例列表页面,在列表中刚创建IDE实例一行中,在操作栏选择“删除IDE实例”,即可删除IDE实例,如图(图18)所示。 图18

6. 恭喜你

至此,你已经成功完成此Codelab教程。恭喜你知识更进一步,获得以下技能:

  • 如何用华为云CloudIDE服务来创建云端开发环境;
  • 如何在CloudIDE云端开发环境中开发微服务,编码、运行、调试和预览;
  • 如何正确的关闭CloudIDE云端实例以节约资源消耗;

7. 参与互动赢好礼

请保存完成截图,参与华为云DevCloud闯关活动瓜分160万码豆。

闯关有礼