摘要:本文以一個(gè)簡(jiǎn)單的接口根據(jù)用戶工號(hào)獲取用戶信息為例,介紹的使用。創(chuàng)建工程打開生成一個(gè)標(biāo)準(zhǔn)工程因?yàn)樾枰С中枰斎耄峁?duì)的支持。創(chuàng)建項(xiàng)目選擇支持將壓縮包中目錄覆蓋項(xiàng)目目錄將項(xiàng)目替換為壓縮包中的文件。
背景
想想,微服務(wù)這概念在當(dāng)初剛從業(yè)時(shí)就聽過(guò),那時(shí)也只是停留在概念上,缺少技術(shù)支撐,或者說(shuō)沒有公認(rèn)完美的技術(shù)支撐。docker的出現(xiàn),給微服務(wù)提供了平臺(tái)支持,spring cloud的出現(xiàn)給微服務(wù)提供全家桶式的解決方案,幾乎成了微服務(wù)的代名詞。
微服務(wù)需要解決的問(wèn)題太多太多,既然spring cloud號(hào)稱是一站式的解決方案,對(duì)微服務(wù)中碰到的問(wèn)題都提供相應(yīng)的解決方案,因此spring cloud有品目繁多的項(xiàng)目,截止到目前,官網(wǎng)上列的就有24個(gè)項(xiàng)目,每個(gè)項(xiàng)目都用于解決特定的問(wèn)題。
其中spring boot應(yīng)該是最核心的一個(gè)組件,用于具體業(yè)務(wù)邏輯的實(shí)現(xiàn) 。本文以一個(gè)簡(jiǎn)單的接口根據(jù)用戶工號(hào)獲取用戶信息為例,介紹spring boot的使用。
打開https://start.spring.io/生成一個(gè)標(biāo)準(zhǔn)spring boot工程. 因?yàn)樾枰猺estful支持,Dependencies需要輸入Web,提供對(duì)web的支持。
創(chuàng)建IntelliJ IDEA項(xiàng)目,選擇支持Maven.
將壓縮包中src目錄覆蓋項(xiàng)目src目錄
將項(xiàng)目pom.xml替換為壓縮包中的pom.xml文件。
在pom.xml文件上右鍵選擇Maven->Reimport導(dǎo)入相應(yīng)的jar包。
目錄結(jié)構(gòu)
. ├── ./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
創(chuàng)建controller4.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
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"}單元測(cè)試
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()); } }打包運(yùn)行
在工程目錄下執(zhí)行命令mvn -Dmaven.test.skip=true install
運(yùn)行target文件夾下生成可運(yùn)行jar包.
java -jar springboot-0.0.1-SNAPSHOT.jar
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/76737.html
摘要:構(gòu)建服務(wù)接口創(chuàng)建一個(gè)簡(jiǎn)單的項(xiàng)目,并在下面定義一個(gè)抽象接口,比如構(gòu)建服務(wù)接口提供方第一步創(chuàng)建一個(gè)項(xiàng)目,在中引入第一步中構(gòu)建的包以及對(duì)和的依賴,比如第一步中構(gòu)建的包這里需要注意兩點(diǎn)必須包含包,不然啟動(dòng)會(huì)報(bào)錯(cuò)。 很早以前,在剛開始搞Spring Cloud基礎(chǔ)教程的時(shí)候,寫過(guò)這樣一篇文章:《微服務(wù)架構(gòu)的基礎(chǔ)框架選擇:Spring Cloud還是Dubbo?》,可能不少讀者也都看過(guò)。之后也就一...
摘要:創(chuàng)建統(tǒng)一服務(wù)項(xiàng)目可以使用來(lái)初始化項(xiàng)目,選擇自己的以來(lái)就好。動(dòng)態(tài)刷新配置目前如果我們修改了上的配置并不能馬上生效,需要我們的客戶端工程重啟才行,現(xiàn)在需要改造成自動(dòng)刷新。 一直使用springboot搭建后端項(xiàng)目,所有的配置都寫到自己的resource目錄下,隨著微服務(wù)的項(xiàng)目越來(lái)越多,每個(gè)項(xiàng)目都需要自己的各種配置文件。而且后期一旦想要修改配置文件,就得重新發(fā)布一遍非常的麻煩,現(xiàn)在就來(lái)教教大...
摘要:英文命名方式也比較有意思,采用了英國(guó)倫敦地鐵站的名稱來(lái)命名,并由地鐵站名稱字母依次類推的形式來(lái)發(fā)布迭代版本。 好久沒有研究 Spring Cloud 了,也沒有關(guān)注它的更新及新特性,上官網(wǎng)看了下,又增加了幾個(gè)版本,有正式版有預(yù)覽版,多達(dá) 6 個(gè)版本,實(shí)在讓人蒙逼。 而我們的項(xiàng)目版本還儀停留在 Dalston SR1 版本。 Spring Cloud 的多版本 showImg(https...
摘要:筆者也是初學(xué)者,本文從創(chuàng)建項(xiàng)目工程開始,一步一步開始講解如何創(chuàng)建服務(wù)端和客戶端,一起學(xué)習(xí),共同進(jìn)步。下面我們使用工具創(chuàng)建相關(guān)項(xiàng)目。配置其中兩個(gè)屬性表明這個(gè)應(yīng)用是端,而不是端。至此,端和端已經(jīng)部署成功。 前言 spring cloud為互聯(lián)企業(yè)構(gòu)建微服務(wù)提供了一整套的技術(shù)組件,其中Eureka是Spring Cloud體系中的核心。Netfix不是一個(gè)技術(shù)概念,它原本是國(guó)外一個(gè)視頻網(wǎng)站的...
摘要:搭建基礎(chǔ)服務(wù)消費(fèi)者,去上生成基本的項(xiàng)目骨架,選取需要的包會(huì)自動(dòng)添加到,填寫,分別生成,和兩個(gè)骨架用導(dǎo)入項(xiàng)目,在下新建目錄和文件如下,實(shí)體可以自己寫建個(gè)的表對(duì)應(yīng)即可,可以用或者,這里用文件如下這是的實(shí)體文件又添加了,和 ????搭建Spring cloud 基礎(chǔ)服務(wù)消費(fèi)者demo,去spring initializr 上生成基本的Spring boot項(xiàng)目骨架,選取需要的包會(huì)自動(dòng)添加到p...
閱讀 1357·2021-09-02 10:19
閱讀 1101·2019-08-26 13:25
閱讀 2108·2019-08-26 11:37
閱讀 2413·2019-08-26 10:18
閱讀 2676·2019-08-23 16:43
閱讀 2989·2019-08-23 16:25
閱讀 775·2019-08-23 15:53
閱讀 3297·2019-08-23 15:11