博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【SpringCloud微服务实战学习系列】创建应用及解析
阅读量:6370 次
发布时间:2019-06-23

本文共 4718 字,大约阅读时间需要 15 分钟。

一、创建应用

使用官方Spring Initializr工具生成基础项目(http://start.spring.io/)

导入Intellij idea中

目录结构如下:

二、目录结构说明:

src/main/java:主程序入口Application,可以通过直接运行改类来启动SpringBoot 应用。

src/main/resources:配置目录,该目录用来存放应用的一些配置信息,比如应用名。服务端扣、数据库链接等。由于我们引入了Web模块,因此产生了static目录与template目录,或者用于存放静态资源,比如图片、CSS、JavaScript等;后者用于存放Web页面的模板文件。

src/test/:单元测试目录,生成的ApplicationTests通过JUnit4来实现,可以直接运行Spring Boot应用的测试。

三、Maven配置分析

1 
2
4
4.0.0
5 6
com.slp
7
springBoot
8
0.0.1-SNAPSHOT
9
jar
10 11
springBoot
12
Demo project for Spring Boot
13 14
15
16
org.springframework.boot
17
spring-boot-starter-parent
18
2.0.3.RELEASE
19
20
21 22
23
UTF-8
24
UTF-8
25
1.8
26
27 28
29
30
31
org.springframework.boot
32
spring-boot-starter-web
33
34 35
36
37
org.springframework.boot
38
spring-boot-starter-test
39
test
40
41
42 43
44
45
46
org.springframework.boot
47
spring-boot-maven-plugin
48
49
50
51 52 53

这里所引用的web和test模块,在Spring Boot生态中被称为Starter POMs.Starter POMS是一系列轻便的依赖包,是一套一站式的Spring相关技术的解决方案。

在使用和整合模块时,不需要再去搜寻样例代码中的依赖配置来复制使用,只需要引入对应的模块包即可。比如,开发Web应用的时候,那就再引入spring-boot-starter-web,希望具备数据库能力的时候就引入spring-boot-starter-jdbc,或者更好用的spring-boot-starter-data-jpa,在使用Spring Boot构建应用的时候,各项功能模块的整合不像传统Spring应用的开发方式那样,需要在pom.xml中做大量的依赖配置。而是通过Starter POMs定义的依赖包,使得功能整合变得非常轻巧,易于使用。

Spring Boot的Starter POMs采用spring-boot-starter-*的命名方式,*代表一个特别的应用功能模块,比如web test。Spring Boot工程本身的结构非常简单,大量的学习要点还是将来在对这些Starter POMs的使用之上。

项目构建的build部分,引入了SpringBoot的Maven插件,该插件非常实用,可以帮助我们更方便的启停应用,这样在开发时就不用每次去找主类火灾打包成ja来运行微服务,只需要mvn spring-boot:run命令就可以启动。

四、实现RESTful API

1 package com.slp.web; 2  3 import org.springframework.web.bind.annotation.RequestMapping; 4 import org.springframework.web.bind.annotation.RestController; 5  6 /** 7  * @author sanglp 8  * @create 2018-06-28 8:39 9  * @desc 第一个 controller10  **/11 12 @RestController13 public class HelloController {14     @RequestMapping("/hello")15     public String index(){16         return "Hello World";17     }18 }

五。启动Spring Boot应用

1、作为一个Java应用程序,可以直接通过运行拥有main函数的类来启动

2、在Maven配置中,之前提到了spring-boot插件。可以使用它来启动,比如执行mvn spring-boot:run命令,或是直接单击IDE中对Maven插件的工具,例如Intellij中的支持

3、在服务器上部署时,通常先使用mvn install将应用打包成jar包,再通过java -jar xxx.jar来启动应用。

六、编写单元测试

package com.slp.springBoot;import com.slp.web.HelloController;import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.http.MediaType;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 static org.hamcrest.Matchers.equalTo;import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;//@RunWith(SpringRunner.class)@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTest@WebAppConfigurationpublic class ApplicationTests {    //模拟调用Controller的接口发起请求,在@Test定义的hello测试用例中,perform函数执行一次请求调用,accept用于执行接收的数据类型,ansExpect用于判断接口返回的期望值    private MockMvc mvc;    //JUnit中定义在测试用例@Test内容执行前预加载的内容,这里用来初始化HelloController的模拟    @Before    public void setUp() throws Exception{        mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();    }    @Test    public void contextLoads() {    }    @Test    public void hello()throws Exception{        mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))        .andExpect(status().isOk()).andExpect(content().string(equalTo("Hello World")));    }}

 

转载于:https://www.cnblogs.com/dream-to-pku/p/9235260.html

你可能感兴趣的文章
细说Unicode(一) Unicode初认识
查看>>
Node.js有了新的管理者
查看>>
Java 20年:历史与未来
查看>>
彻底理解Javascript中的原型链与继承
查看>>
腾讯最大规模裁撤中层干部,让贤年轻人
查看>>
gRPC-Web发布,REST又要被干掉了?
查看>>
如何:强化 TCP/IP 堆栈安全
查看>>
Spring3 MVC中使用Swagger生成API文档
查看>>
FastCGI PHP on Windows Server 2003
查看>>
LimeSDR Getting Started Quickly | LimeSDR上手指南
查看>>
JSP标签JSTL的使用(1)--表达式操作
查看>>
SAP顾问的人脉比技术更为重要
查看>>
FI/CO PA考试试卷
查看>>
汽车介质应用非常严苛?没关系,新技术带来的高精度传感器十分适应!
查看>>
天合光能 - 用计算捕捉“光的能量”
查看>>
使用sysbench压力测试MySQL(一)(r11笔记第3天)
查看>>
css知多少(11)——position
查看>>
【Spring】定时任务详解实例-@Scheduled
查看>>
先有的资源,能看的速度看,不能看的,抽时间看。说不定那天就真的打不开了(转)...
查看>>
[20161028]rman与filesperset=1.txt
查看>>