SpringBoot快速搭建微服务【一】

2018-05-04  本文已影响0人  Joseph1453

背景

完成一个用户拼团的新手任务,从零开始搭建一个使用微服务架构并提供REST接口的项目,其中使用到了SpringBoot、Dubbo、Mybatis、ShardingJDBC、zebra、lion、cat等框架和中间件,现在回顾总结并记录成文,方便以后参考及帮助到有需要的同学。

目录

1. 入门

2. 进阶

1.1-1.3 本文
1.4-1.8 第二篇
2.1-2.5 第三篇

一. 使用Gradle搭建工程

1.1 基本概念

构建工具,基本使用跟maven一样,项目构建文件为build.gradle。
主要配置项为项目结构和依赖,不同于maven的是需要每个项目都配置仓库地址。

plugins {
    id 'java'
}

group 'com.xxx'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'redis.clients', name: 'jedis', version:'2.6.0'

    testCompile group: 'junit', name: 'junit', version: '4.12'
}
1.2 注意点
C:\Users\XXX\.gradle\caches\modules-2\files-2.1
1.3 打包
---
applications:
- name: gs-rest-service
  memory: 256M
  instances: 1
  host: rest-service
  domain: guides.spring.io
  path: build/libs/gs-rest-service-0.1.0.jar

二. SpringBoot入门

约定优于配置的思想,太赞了,对于初学者来说非常友好。

传统的spring java Web应用:

而在springBoot中,以上3点都不需要

2.1 引入依赖

以gradle为例

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

引入依赖spring-boot-starter-web,包括:

2.2 应用入口
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

SpringApplication启动后:

2.3 controller
@RestController
public class GreetingController {

    private static final String template = "Hello, %s!";
    private final AtomicLong counter = new AtomicLong();

    @RequestMapping("/greeting")
    public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
        return new Greeting(counter.incrementAndGet(),
                            String.format(template, name));
    }
}

默认使用Jackson序列化,返回json数据

2.4 单元测试
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class GreetingControllerTests {

    @Autowired
    private MockMvc mockMvc;

    @Test
    public void noParamGreetingShouldReturnDefaultMessage() throws Exception {

        this.mockMvc.perform(get("/greeting")).andDo(print()).andExpect(status().isOk())
                .andExpect(jsonPath("$.content").value("Hello, World!"));
    }

    @Test
    public void paramGreetingShouldReturnTailoredMessage() throws Exception {

        this.mockMvc.perform(get("/greeting").param("name", "Spring Community"))
                .andDo(print()).andExpect(status().isOk())
                .andExpect(jsonPath("$.content").value("Hello, Spring Community!"));
    }

}
2.5 运行测试
  1. 直接run application
  2. 使用gradle的task:application的bootrun启动
  3. 使用gradle的task:build生成jar包,然后java -jar xxx.jar启动

然后打开浏览器,localhost:8080\xxx即可访问

三.ZooKeeper入门

作为分布式服务的注册、调度中心使用【分布式下的多服务管理,就像管理各种习性不一的物种一样,故名ZooKeeper】

3.1 安装
3.2 运行
上一篇下一篇

猜你喜欢

热点阅读