java服务服务状态检测_Java微服务应用测试,走起

2155ea6413c6712e28665bd6f4e5e0f5.png

从近几年的技术发展来看,行业里提到微服务应用场景越来越多,是时候能够提升目前的业务扩展能力了。相比于传统的EJB,SOA的方案,微服务是一种相对于更加轻量的方案,在Java领域有很多种实现,spring cloud算是一种,还有比如dubbo等等。

我们就简单演示下如何通过idea的工具来创建一个简单的微服务应用,以此为切入点,我们会牵扯出整个微服务的额整体设计,来尽可能达到融会贯通的的。

我们创建一个全新的工程。

a55d52652478c0533f5c345b435d95c7.png

注意下如下的配置。

f6c5ae677bfede6e2a377df5263668e1.png

这里我们选择的sping boot 2.0+的版本。

0a3ce82ce8665c8797dbcab1c010718e.png

输入项目名

1a222fd7dc7038e138a10edf19ea6e38.png

这是一个创建成功后初步的状态。

6f10cd080ee65b1fe085e934363fbc3e.png

我们把如下的文件删掉,准备加入模块,这样项目变成一个父项目,我们在此基础上创建一个子项目

d998fe3116fcf7c475a99a1305247086.png

这个时候是 新建一个模块(module)

c745b20b7c67714745c6ed756e0a0bde.png

这个地方选择web和数据源为MySQL,当然你也可以选择其他的,先按照这个配置吧。

368daa5b757e72fd8c00df4092e00aeb.png

创建成功后的状态如下:

a475673aca77bd1281881b8de4ed6468.png

我们把如下的几个文件删掉,开始创建自定义类。

470e3df8601a8801799db36f8380d557.png

初步的目录结构如下,分别是License,LicenseServiceController

ef3c7a86d34cb07e106ee54567b49a94.png

两个类的内容如下:

package com.jeanron.licensesservice.domain; public class License{ private String licenseId; private String organizationId; private String productName; private String licenseType; public String getLicenseId() { return licenseId; } public void setLicenseId(String licenseId) { this.licenseId = licenseId; } public String getOrganizationId() { return organizationId; } public void setOrganizationId(String organizationId) { this.organizationId = organizationId; } public String getProductName() { return productName; } public void setProductName(String productName) { this.productName = productName; } public String getLicenseType() { return licenseType; } public void setLicenseType(String licenseType) { this.licenseType = licenseType; } public License withLicenseId(String licenseId){ this.setLicenseId( licenseId ); return this; } public License withOrganizationId(String organizationId){ this.setOrganizationId(organizationId); return this; } public License withProductName(String productName){ this.setProductName(productName); return this; } public License withLicenseType(String licenseType){ this.setLicenseType(licenseType); return this; }

}

package com.jeanron.licensesservice.controller; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestController; import com.jeanron.licensesservice.domain.License; /** * 该注解相当于@ResponseBody + @Controller合在一起的作用 * 会将request/response序列化/反序列化为JSON格式 */ @RestController @RequestMapping(value="v1/organizations/{organizationId}/licenses") public class LicenseServiceController { @RequestMapping(value="/{licenseId}",method = RequestMethod.GET)

public License getLicenses( @PathVariable("organizationId") String organizationId, @PathVariable("licenseId")

String licenseId) { //@PathVariable能将URL中{organizationId}、{licenseId}映射到方法的变量organizationId、licenseId return new License() .withLicenseId(licenseId) .withOrganizationId(organizationId) .withProductName("OpsAPI") .withLicenseType("Database"); }

@RequestMapping(value="{licenseId}",method = RequestMethod.PUT) public String updateLicenses( @PathVariable("licenseId") String licenseId) { return String.format("This is the put"); }

@RequestMapping(value="{licenseId}",method = RequestMethod.POST) public String saveLicenses( @PathVariable("licenseId") String licenseId) { return String.format("This is the post"); }

@RequestMapping(value="{licenseId}",method = RequestMethod.DELETE)

@ResponseStatus(HttpStatus.NO_CONTENT) public String deleteLicenses( @PathVariable("licenseId") String licenseId) { return String.format("This is the Delete");

}

}

看代码还OK,但是实际配置的时候,第二个类的环境配置是个难点,很容易漏掉一些东西,导致编译失败。我能给出的建议就是耐心一些,再耐心一些。

启动下服务,idea里面启动还是很方便的。

a25429bfe923abeb1b37bff636b58f61.png

通过浏览器,我们能够根据输入的参数,经过处理,封装成一个json串返回。

ae085dc63b0526622f1432265f7db606.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值