(一)SpringBoot Demo之 Hello World


原文 : https://spring.io/guides/gs/rest-service/

类型:官网入门指南

要求:JDK1.8 ^ ,Maven 3.2 ^


最终效果

在地址栏输入 http://localhost:8080/greeting ,返回一串 JSON
在这里插入图片描述
如果带上 name 参数,则返回带参数值的 JSON
在这里插入图片描述


pom文件编写

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.springframework</groupId>
    <artifactId>gs-rest-service</artifactId>
    <version>0.1.0</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.jayway.jsonpath</groupId>
            <artifactId>json-path</artifactId>
            <scope>test</scope>
        </dependency>
    
    </dependencies>

    <properties>
        <java.version>1.8</java.version>
    </properties>


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

其中最下面的插件 spring-boot-maven-plugin ,它获取类路径上的所有 jar 包,然后构建一个可运行的 jar 包,便于执行;

然后它会定位 public static void main() ,无论按一个类,只要包含这个方法,就会被定位到,视为可执行类;

该插件还内置一个依赖项解析器,解析 Spring Boot 的各种依赖 ;

说了这么多,其实就是一句话:该插件可以将项目打包成可运行的 jar 包 ;


编写资源类

这里创建一个 Greeting 类:

package hello;

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;
    }
}

就跟以前学的 javabean 一样;


编写控制器

package hello;

import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@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));
    }
}

首先看下类上的注解 @RestController ,区别于以前的 @Controller ,它可以视为 @Controller 、 @ResponseBody 两个注解加在一起收,标识方法返回 json;

还有一个地方需要注意,那就是处理器的方法的返回值,直接返回实例对象;

SpringBoot 将自动的将处理器方法的返回值转为 JSON,不需要我们自己手动转换,但是需要我们导入 Jackson 2 的包,然后SpringMappingJackson2HttpMessageConverter 自动的将方法的返回值实例转为 JSON 对象 ;


运行项目

编写一个类:

package hello;

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);
    }
}

使用 @SpringBootApplication 注解标识下,然后就可以直接运行项目了,正如你猜的那样,不需要 Tomcat

原文地址:https://www.cnblogs.com/young-youth/p/11665592.html