Spring Cloud Spring Boot mybatis分布式微服务云架构(一)快速入门

原创 2018年02月28日 09:28:36

快速入门

本章主要目标完成Spring Boot基础项目的构建,并且实现一个简单的Http请求处理,通过这个例子对Spring Boot有一个初步的了解,并体验其结构简单、开发快速的特性。

系统要求:

  • Java 7及以上
  • Spring Framework 4.1.5及以上

本文采用Java 1.8.0_73Spring Boot 1.3.2调试通过。

使用Maven构建项目

  1. 通过SPRING INITIALIZR工具产生基础项目
    1. 访问:http://start.spring.io/
    2. 选择构建工具Maven Project、Spring Boot版本1.3.2以及一些工程基本信息,可参考下图所示SPRING INITIALIZRSPRING INITIALIZR
    3. 点击Generate Project下载项目压缩包
  2. 解压项目包,并用IDE以Maven项目导入,以IntelliJ IDEA 14为例:
    1. 菜单中选择File–>New–>Project from Existing Sources...
    2. 选择解压后的项目文件夹,点击OK
    3. 点击Import project from external model并选择Maven,点击Next到底为止。
    4. 若你的环境有多个版本的JDK,注意到选择Java SDK的时候请选择Java 7以上的版本

项目结构解析

项目结构项目结构

通过上面步骤完成了基础项目的创建,如上图所示,Spring Boot的基础结构共三个文件(具体路径根据用户生成项目时填写的Group所有差异):

  • src/main/java下的程序入口:Chapter1Application
  • src/main/resources下的配置文件:application.properties
  • src/test/下的测试入口:Chapter1ApplicationTests

生成的Chapter1ApplicationChapter1ApplicationTests类都可以直接运行来启动当前创建的项目,由于目前该项目未配合任何数据访问或Web模块,程序会在加载完Spring之后结束运行。

引入Web模块

当前的pom.xml内容如下,仅引入了两个模块:

  • spring-boot-starter:核心模块,包括自动配置支持、日志和YAML
  • spring-boot-starter-test:测试模块,包括JUnit、Hamcrest、Mockito
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter</artifactId>
    	</dependency>
    
    	<dependency>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-test</artifactId>
    		<scope>test</scope>
    	</dependency>
    </dependencies>

  • 引入Web模块,需添加spring-boot-starter-web模块:

    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    编写HelloWorld服务

  • 创建package命名为com.didispace.web(根据实际情况修改)
  • 创建HelloController类,内容如下
    @RestController
    public class HelloController {
    
        @RequestMapping("/hello")
        public String index() {
            return "Hello World";
        }
    
    }

     

  • 启动主程序,打开浏览器访问http://localhost:8080/hello,可以看到页面输出Hello World
  • 编写单元测试用例

    打开的src/test/下的测试入口Chapter1ApplicationTests类。下面编写一个简单的单元测试来模拟http请求,具体如下:

    @RunWith(SpringJUnit4ClassRunner.class)
    @SpringApplicationConfiguration(classes = MockServletContext.class)
    @WebAppConfiguration
    public class Chapter1ApplicationTests {
    
    	private MockMvc mvc;
    
    	@Before
    	public void setUp() throws Exception {
    		mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
    	}
    
    	@Test
    	public void getHello() throws Exception {
    		mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
    				.andExpect(status().isOk())
    				.andExpect(content().string(equalTo("Hello World")));
    	}
    
    }

  • 使用MockServletContext来构建一个空的WebApplicationContext,这样我们创建的HelloController就可以在@Before函数中创建并传递到MockMvcBuilders.standaloneSetup()函数中。

  • 注意引入下面内容,让statuscontentequalTo函数可用
    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;

  • 至此已完成目标,通过Maven构建了一个空白Spring Boot项目,再通过引入web模块实现了一个简单的请求处理。

  • 源码来源

spring cloud与spring boot实战

本课程主要从四个章节进行讲解: 1.微服务架构入门 2.spring cloud 基础入门 3.实战Spring Boot 4.注册中心eureka。 请加QQ群:274033905(群名:《spring cloud 实战》),免费获取课件资料哦 本课程的知识目录和思维导图详细介绍地址:http://blog.csdn.net/bobo0218bo/article/details/78442245
  • 2017年10月15日 20:49

3分钟搞定SpringBoot+Mybatis+druid多数据源和分布式事务

在一些复杂的应用开发中,一个应用可能会涉及到连接多个数据源,所谓多数据源这里就定义为至少连接两个及以上的数据库了。        下面列举两种常用的场景:         一种是读写分离的数据源,...
  • qq_29242877
  • qq_29242877
  • 2018-01-11 13:50:09
  • 1092

Spring Cloud之路:(五)Spring Boot + Mybatis小试

一、Mybatis 1、介绍   MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果...
  • sage_wang
  • sage_wang
  • 2018-02-06 13:48:45
  • 183

你知道Hello World程序的由来吗?

Hello World是一个最著名的程序。对每一位程序员来说,这个程序几乎是每一门编程语言中的第一个示例程序。实际上,这个程序的功能只是告知计算机显示Hello World这句话。传统意义上,程序员一...
  • testcs_dn
  • testcs_dn
  • 2016-09-26 20:56:33
  • 3148

24种编程语言的Hello World程序

这篇文章主要介绍了 24 种编程语言的 Hello World 程序,包括熟知的 Java、C 语言、C++、C#、Ruby、Python、PHP 等编程语言,需要的朋友可以参考下。 Hello...
  • yilovexing
  • yilovexing
  • 2016-11-21 10:14:28
  • 4538

第一个Java程序示例——Hello World!

来自 http://www.weixueyuan.net/view/5947.html 通过Eclipse运行程序 启动Eclipse,在菜单中选择“文件 --> 新建 --> Java项...
  • haifengid
  • haifengid
  • 2016-09-12 19:35:11
  • 105765

Hello World的一生

Hello World的一生Hello World#include int main() { printf("Hello, World!\n"); return 0; }Hello W...
  • LuckySou
  • LuckySou
  • 2017-01-18 20:57:19
  • 223

用Python编写运行Hello World程序

简介         我们将看一下如何用Python编写运行一个传统的“Hello World”程序。通过它,你将学会如何编写、保存和运行Python程序。         有两种使用Python运行...
  • pjeby
  • pjeby
  • 2006-09-12 13:10:00
  • 45194

编写第一个C语言程序-Hello World

前面已经唠叨了这么多理论知识,从这讲开始,就要通过接触代码来学习C语言的语法。学习任何一门语言,首先要掌握的肯定是语法。学习C语言语法的目的:就是能够利用C语言编写程序,然后运行程序跟硬件(计算机、手...
  • wolf09311
  • wolf09311
  • 2014-11-16 22:57:00
  • 50997

SpringBoot入门系列:第一篇 Hello World

跟随SpringBoot的文档(http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-d...
  • lxhjh
  • lxhjh
  • 2016-06-19 10:36:14
  • 295421
收藏助手
不良信息举报
您举报文章:Spring Cloud Spring Boot mybatis分布式微服务云架构(一)快速入门
举报原因:
原因补充:

(最多只允许输入30个字)