摘要:本文以一个简单的接口根据用户工号获取用户信息为例,介绍的使用。创建工程打开生成一个标准工程因为需要支持需要输入,提供对的支持。创建项目选择支持将压缩包中目录覆盖项目目录将项目替换为压缩包中的文件。
背景
想想,微服务这概念在当初刚从业时就听过,那时也只是停留在概念上,缺少技术支撑,或者说没有公认完美的技术支撑。docker的出现,给微服务提供了平台支持,spring cloud的出现给微服务提供全家桶式的解决方案,几乎成了微服务的代名词。
微服务需要解决的问题太多太多,既然spring cloud号称是一站式的解决方案,对微服务中碰到的问题都提供相应的解决方案,因此spring cloud有品目繁多的项目,截止到目前,官网上列的就有24个项目,每个项目都用于解决特定的问题。
其中spring boot应该是最核心的一个组件,用于具体业务逻辑的实现 。本文以一个简单的接口根据用户工号获取用户信息为例,介绍spring boot的使用。
打开https://start.spring.io/生成一个标准spring boot工程. 因为需要restful支持,Dependencies需要输入Web,提供对web的支持。
创建IntelliJ IDEA项目,选择支持Maven.
将压缩包中src目录覆盖项目src目录
将项目pom.xml替换为压缩包中的pom.xml文件。
在pom.xml文件上右键选择Maven->Reimport导入相应的jar包。
目录结构
</>复制代码
.
├── ./pom.xml
├── ./springboot.iml
└── ./src
├── ./src/main
│ ├── ./src/main/java
│ │ └── ./src/main/java/yaya
│ │ └── ./src/main/java/yaya/demo
│ │ └── ./src/main/java/yaya/demo/springboot
│ │ └── ./src/main/java/yaya/demo/springboot/SpringbootApplication.java
│ └── ./src/main/resources
│ ├── ./src/main/resources/application.properties
│ ├── ./src/main/resources/static
│ └── ./src/main/resources/templates
└── ./src/test
└── ./src/test/java
└── ./src/test/java/yaya
└── ./src/test/java/yaya/demo
└── ./src/test/java/yaya/demo/springboot
└── ./src/test/java/yaya/demo/springboot/SpringbootApplicationTests.java
pom.xml
</>复制代码
4.0.0
yaya.demo
springboot
0.0.1-SNAPSHOT
jar
springboot
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
2.0.4.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin
创建controller
</>复制代码
package yaya.demo.springboot.pojos;
/**
* @Description:
* @author: jianfeng.zheng
* @since: 2018/8/14 下午7:48
* @history: 1.2018/8/14 created by jianfeng.zheng
*/
public class User {
private String username;
private String uid;
private String email;
//...getter and setter
}
</>复制代码
package yaya.demo.springboot.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import yaya.demo.springboot.pojos.User;
/**
* @Description:
* @author: jianfeng.zheng
* @since: 2018/8/14 下午7:45
* @history: 1.2018/8/14 created by jianfeng.zheng
*/
@RestController
public class UserController {
@RequestMapping(value = "/user",method = RequestMethod.GET)
public User getUserInfo(@RequestParam(name = "uid")String uid){
User user=new User();
user.setEmail("jianfeng.zheng@definesys.com");
user.setUsername("jianfeng.zheng");
user.setUid(uid);
return user;
}
}
</>复制代码
# curl http://localhost:8080/user?uid=004
{"username":"jianfeng.zheng","uid":"004","email":"jianfeng.zheng@definesys.com"}
单元测试
</>复制代码
package yaya.demo.springboot;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import yaya.demo.springboot.controller.UserController;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest()
@WebAppConfiguration
public class SpringbootApplicationTests {
private MockMvc mvc;
@Before
public void init() {
mvc = MockMvcBuilders.standaloneSetup(new UserController()).build();
}
@Test
public void getUserInfo() throws Exception {
mvc.perform((MockMvcRequestBuilders.get("/user")
.param("uid", "004")))
.andDo(print())
.andExpect(status().isOk());
}
}
打包运行
在工程目录下执行命令mvn -Dmaven.test.skip=true install
运行target文件夹下生成可运行jar包.
</>复制代码
java -jar springboot-0.0.1-SNAPSHOT.jar
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/76737.html
摘要:构建服务接口创建一个简单的项目,并在下面定义一个抽象接口,比如构建服务接口提供方第一步创建一个项目,在中引入第一步中构建的包以及对和的依赖,比如第一步中构建的包这里需要注意两点必须包含包,不然启动会报错。 很早以前,在刚开始搞Spring Cloud基础教程的时候,写过这样一篇文章:《微服务架构的基础框架选择:Spring Cloud还是Dubbo?》,可能不少读者也都看过。之后也就一...
摘要:创建统一服务项目可以使用来初始化项目,选择自己的以来就好。动态刷新配置目前如果我们修改了上的配置并不能马上生效,需要我们的客户端工程重启才行,现在需要改造成自动刷新。 一直使用springboot搭建后端项目,所有的配置都写到自己的resource目录下,随着微服务的项目越来越多,每个项目都需要自己的各种配置文件。而且后期一旦想要修改配置文件,就得重新发布一遍非常的麻烦,现在就来教教大...
摘要:英文命名方式也比较有意思,采用了英国伦敦地铁站的名称来命名,并由地铁站名称字母依次类推的形式来发布迭代版本。 好久没有研究 Spring Cloud 了,也没有关注它的更新及新特性,上官网看了下,又增加了几个版本,有正式版有预览版,多达 6 个版本,实在让人蒙逼。 而我们的项目版本还仪停留在 Dalston SR1 版本。 Spring Cloud 的多版本 showImg(https...
摘要:笔者也是初学者,本文从创建项目工程开始,一步一步开始讲解如何创建服务端和客户端,一起学习,共同进步。下面我们使用工具创建相关项目。配置其中两个属性表明这个应用是端,而不是端。至此,端和端已经部署成功。 前言 spring cloud为互联企业构建微服务提供了一整套的技术组件,其中Eureka是Spring Cloud体系中的核心。Netfix不是一个技术概念,它原本是国外一个视频网站的...
摘要:搭建基础服务消费者,去上生成基本的项目骨架,选取需要的包会自动添加到,填写,分别生成,和两个骨架用导入项目,在下新建目录和文件如下,实体可以自己写建个的表对应即可,可以用或者,这里用文件如下这是的实体文件又添加了,和 搭建Spring cloud 基础服务消费者demo,去spring initializr 上生成基本的Spring boot项目骨架,选取需要的包会自动添加到p...
阅读 1482·2021-09-02 10:19
阅读 1167·2019-08-26 13:25
阅读 2183·2019-08-26 11:37
阅读 2503·2019-08-26 10:18
阅读 2751·2019-08-23 16:43
阅读 3187·2019-08-23 16:25
阅读 865·2019-08-23 15:53
阅读 3377·2019-08-23 15:11