Spring Boot【官网介绍】-- 001

Introduction

TODO: Spring Boot简化Java企业级开发

特征

  • 创建独立的Spring App
  • 内嵌Tomcat、Jetty、Undertow(无需部署任何WAR文件)
  • 提供启动配置依赖项,简化构建配置
  • 自动配置Spring和第三方依赖库
  • 可用于生产的功能,eg: 指标、运行状况检查和外部化配置
  • 没有任何代码生成,不需要XML配置

第一个HelloWorld

构建RESTful Web服务

构建一个接收HTTP GET请求的服务,以JSON形式来响应用户的请求

{"id":1,"content":"Hello, World!"} // 此时响应默认不带参数的默认请求

在查询字符串中使用可选参数来定义
name的参数将覆盖的默认值World并如下进行响应:

{"id":1,"content":"Hello, User!"}
  • 创建资源表示形式类

服务交互过程:
该服务将处理http://localhost:8080/greeting (GET请求)并使用可选name来查询参数,该GET请求应200 OK在正文中返回表示JSON的响应。
eg:

{
      "id": 1,
      "content": "Hello, World"
}

id是实例greeting的唯一标识符,content是响应的问候语文本表示形式

  • Greeting实体构建(简单Java类)
public class Greeting {
    private final long id;
    private final String content;
    public Greeting(long id, String content){
        this.id = id;
        this.content = content;
    }
    public long getId(){
        return id;
    }
    public String getContent(){
        return content;
    }
}

Spring Boot App将默认使用spring-starter-web下的默认Jackson JSON库来自动将类型的实例Greeting封装为JSON。网络启动器默认包含Jackson

  • 创建要给资源控制器

在Spring构建RESTful Web服务的方法中,HTTP请求由控制器处理。

@RestController
public class GreetingController {
    
    private static final String template = "Hello, %s"; //响应文本
    private static final AtomicLong counter = new AtomicLong();
    
    @GetMapping("/greeting") 
    public Greeting greeting(@RequestParam(name="name",defaultValue = "World")String name){
        return new Greeting(counter.incrementAndGet(), String.format(template, name));
    }
}
// @GetMapping注解确保 HTTP GET请求将 http://localhost:8080/greeting 映射到 greeting()方法中
注解 等价注解
@RequestMapping(method=GET) @GetMapping
@RequestMapping(method=POST) @PostMapping

小结:

  1. public Greeting getinfo(@RequestParam(value="name",defaultValue="world")String name){} @ReqeustParam将请求中的name(key)的值(Value)绑定到name上

  2. 传统的MVC控制器和RESTful Web服务器之间的主要区别在于:创建HTTP响应主体的方式不同(RESTful Web服务控制器填充并返回一个Greeting对象并不会依赖于任何视图技术而是将对象数据包装为JSON直接写入HTTP响应中)

  3. @RestController = @Controller + @ResponseBody】该注解将类标记为控制器,其中每个方法均返回域对象而不是视图

  4. @SpringBootApplication = @Configuration + @EnableAutoConfiguration + @ComponentScan

  • @Configuration: 自动扫描并加载符合条件的组件(比如@Component和@Repository等)或者bean定义,将这些bean定义加载到IoC容器中.
  • @EnableAutoConfiguration: 程序启动时,自动加载springboot默认的配置.
  • @ComponentScan: 程序启动时自动扫描当前包及子包下所有类.
  1. 打包: java -jar target / gs-rest-service-0.1.0.jar
posted @ 2020-10-16 22:07  Felix_Openmind  阅读(829)  评论(0编辑  收藏  举报