spring-cloud教程一:创建spring boot

背景

想想,微服务这概念在当初刚从业时就听过,那时也只是停留在概念上,缺少技术支撑,或者说没有公认完美的技术支撑。docker的出现,给微服务提供了平台支持,spring cloud的出现给微服务提供全家桶式的解决方案,几乎成了微服务的代名词。
微服务需要解决的问题太多太多,既然spring cloud号称是一站式的解决方案,对微服务中碰到的问题都提供相应的解决方案,因此spring cloud有品目繁多的项目,截止到目前,官网上列的就有24个项目,每个项目都用于解决特定的问题。
其中spring boot应该是最核心的一个组件,用于具体业务逻辑的实现 。本文以一个简单的接口根据用户工号获取用户信息为例,介绍spring boot的使用。

创建spring boot工程

  1. 打开https://start.spring.io/生成一个标准spring boot工程. 因为需要restful支持,Dependencies需要输入Web,提供对web的支持。

  2. 创建IntelliJ IDEA项目,选择支持Maven.
  3. 将压缩包中src目录覆盖项目src目录
  4. 将项目pom.xml替换为压缩包中的pom.xml文件。
  5. 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

1. 创建用户类yaya.demo.springboot.pojos.User
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
}
2. 创建controlleryaya.demo.springboot.controller.UserController
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("[email protected]");
        user.setUsername("jianfeng.zheng");
        user.setUid(uid);
        return user;
    }
}
3. 运行启动类SpringbootApplication
4. 测试
# curl http://localhost:8080/user?uid=004
{"username":"jianfeng.zheng","uid":"004","email":"[email protected]"}

单元测试

修改单元测试类SpringbootApplicationTests
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());
    }

}

打包运行

  1. 在工程目录下执行命令mvn -Dmaven.test.skip=true install
  2. 运行target文件夹下生成可运行jar包.
java -jar springboot-0.0.1-SNAPSHOT.jar

你可能感兴趣的:(java,springboot,springcloud)