SpringBoot学习总结点

(一)@Controller和@RestController的区别

 

          @RestController注解相当于@ResponseBody + @Controller合在一起的作用。

 

1、如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。

例如:本来应该到success.jsp页面的,则其显示success.

2、如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
3、如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。

 

(二)SpringBoot搭建

 

1.pom添加依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.2.RELEASE</version>
        <relativePath/>
    </parent>  
      
    <dependencies>  
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-web</artifactId>  
        </dependency>  
        
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>
            
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        </dependency>
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

2.Controller类

     @RestController
        public class SpringBootController {
        @RequestMapping(value = "/index", method = RequestMethod.GET)
          public String say() {
              return "Hello World!";
          }
     }

3.启动类

     @SpringBootApplication(scanBasePackages = "com.cmcc.study")
     public class Test {
          public static void main(String[] args) {
              SpringApplication.run(Test.class, args);
          }
     }

4.测试【http://localhost:8080/index】

(三)SpringBoot mock单元测试

1、pom 添加依赖

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

2.单元测试类

     @RunWith(SpringRunner.class)
     @SpringBootTest
public class TestControllerTest {
    private MockMvc mvc;
    
    @Test
    public void test() {
        mvc = MockMvcBuilders.standaloneSetup(new TestController()).build();
        try {
            mvc.perform(MockMvcRequestBuilders.get("/index"))
                    .andExpect(MockMvcResultMatchers.status().isOk())
                    .andDo(MockMvcResultHandlers.print()).andReturn();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 }

(四)SpringBoot和Swagger的继承

1.pom加入依赖

     <dependency>
             <groupId>io.springfox</groupId>
             <artifactId>springfox-swagger2</artifactId>
              <version>2.2.2</version>
      </dependency>
         
      <dependency>
              <groupId>io.springfox</groupId>
              <artifactId>springfox-swagger-ui</artifactId>
              <version>2.2.2</version>
      </dependency>

2.Swagger配置

@Configuration
@EnableSwagger2【注:必加该注解】
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
                .apis(RequestHandlerSelectors.basePackage("com.cmcc.study"))
                .paths(PathSelectors.any()).build();
    }
    
    private ApiInfo apiInfo() {
        return new ApiInfo("Spring Boot 测试使用 Swagger2 构建RESTful API", "", "1.0",
                "http://localhost/", "木木", "", "");
    }
}

3.Controller类

@RestController
@RequestMapping("/demo")
@Api(value = "测试Swagger2", description = "简单的Swaager页面接口编辑测试")
public class TestController {
    @ApiOperation(value = "测试get请求", notes = "测试GET请求")
    @RequestMapping(value = "/index", method = RequestMethod.GET)
    String say() {
        return "Hello World!";
    }
    
    @ApiOperation(value = "测试POST请求", notes = "根据User对象创建用户【POST】")
    @RequestMapping(value = "/user/{id}/{nc}", method = RequestMethod.POST)
    @ApiImplicitParams({
            @ApiImplicitParam(dataType = "java.lang.Long", name = "编号", value = "id", required = true, paramType = "path"),
            @ApiImplicitParam(dataType = "java.lang.String", name = "昵称", value = "nc", required = true, paramType = "path"),
            @ApiImplicitParam(dataType = "java.lang.String", name = "年龄", value = "age", required = false, paramType = "body"),
            @ApiImplicitParam(dataType = "User", name = "用户", value = "用户信息", required = true) })
    @ApiResponses({

            @ApiResponse(code = 500, message = "接口异常")

     })
    public User insert(@PathVariable Long id, @RequestBody User user) {
        System.out.println("id:" + id + ", user:" + user);
        return user;
    }
}

4.启动类

    @SpringBootApplication(scanBasePackages = "com.cmcc.study")
        public class Test {
             public static void main(String[] args) {
                 SpringApplication.run(Test.class, args);
             }
       }

5.测试【http://localhost:8080/swagger-ui.html】

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值