Создайте RESTful WebService на основе Spring Boot 2.0

Spring Boot Java задняя часть Spring maven

Полное название REST — Representational State Transfer, что в переводе с китайского означает «передача репрезентативного состояния». RESTful — это набор рекомендаций и ограничений, касающихся существующих характеристик Интернета и того, как он используется. На основе Spring MVC RestController мы можем легко создать приложение RESTful.

Создайте проект с Maven

мы можем напрямую использоватьIntelliJ IDEA(рекомендуется) вSpring initializerБыстро создатьSpring Bootпроект, используемый здесьMavenпостроить,pom.xmlФайлы следующие:

<?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.1.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>

    <repositories>
        <repository>
            <id>spring-releases</id>
            <url>https://repo.spring.io/libs-release</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-releases</id>
            <url>https://repo.spring.io/libs-release</url>
        </pluginRepository>
    </pluginRepositories>
</project>

Spring Maven pluginЭто набор плагинов, разработанных Spring для Maven, который содержит несколько мощных функций:

  • Нет необходимости в сложной конфигурацииСтройте быстроИсполняемый пакет jar, который позволяет приложению работать практически независимо от среды.
  • Автоматический поискpublic static void main()метод и пометить его класс какстартовый класс
  • Автоматическое управление зависимостями Spring Boot, все зависимые версии проекта согласуются с родительским проектом Spring Boot (по умолчанию), разумеется, другие версии также можно указать вручную

Spring также поддерживаетGradleСборка, пожалуйста, обратитесь к подробной конфигурацииBuild with Gradle

Создать класс сущности

Класс сущности здесь неORMКласс сущности в REST, но «ресурс» в REST, функция, которую хочет реализовать наш веб-сервис, состоит в том, чтобы обрабатывать URL-адрес как/userinfo/1изGETзапросить и вернуть результатJSONВозвращается в виде тела ответа, код состояния ответа200 OK, формат JSON следующий:

{
    "id": 1,
    "name": "张三"
}

Этот пример просто имитирует получение информации о пользователе с идентификатором 1. Сначала создайте класс POJO.User:

public class User {

    private final long id;
    private final String name;

    public User(long id, String name) {
        this.id = id;
        this.name = name;
    }

    public long getId() {
        return id;
    }

    public String getName() {
        return name;
    }
}
Spring 默认使用 `Jackson` 作为 JSON 解析库将 POJO 类对象序列化为 JSON。

Создать контроллер

Добавить в класс контроллера@RestControllerАннотацию можно использовать для сериализации возвращаемого значения в JSON и возврата его в виде тела ответа.content-typeзаapplication/json,просить/user/1Получит информацию о пользователе с идентификатором 1, это класс контроллера:

@RestController
public class GreetingController {

    private static final String template = "张三";
    private final long id = 1;

    @RequestMapping("/user/{id}")
    public User userInfo(@PathVariable("id")long id) {
        return new User(id, template);
    }
}

заставить приложение работать

Традиционный способ сборки — генерировать war-файл, а затем развертывать его на веб-сервере, что иногда неудобно, поэтому рекомендуется использовать плагин Spring Boot Maven для быстрой генерации независимого исполняемого jar-файла с помощьюjava -jarКоманда может запустить приложение, все классы и ресурсы и другие файлы интегрированы в этот файл jar, который также включает в себявстроенныйконтейнер сервлетов (например, Tomcat), следующий класс запуска для этого приложения:

@SpringBootApplication
public class Application {

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

@SpringBootApplicationЭта аннотация представляет собой составную аннотацию, которая включает:

  • @Configuration: объявляет, что этот класс является классом конфигурации для bean-компонентов в контексте
  • @EnableAutoConfiguration: заставляет Spring сканировать соответствующие классы конфигурации bean-компонентов или классы свойств в контексте и помещать эти bean-компоненты в контекст приложения.
  • Когда Spring обнаружит, что существует зависимость от spring-webmvc в пути к классам, он автоматически добавит ее в класс запуска приложения.@EnableWebMvc, что указывает на то, что приложение является веб-приложением, и связанные с Интернетом операции, такие как создание экземпляров, будут выполняться при запуске приложения.DispatcherServletкласс и настроить его
  • @ComponentScan: заставить Spring сканировать все настройкиКлассы компонентов, классы конфигурации, бизнес-классы и контроллеры, и собрать его

в стартовом классеmainвызов методаSpringBootApplication.run()Запуск приложения может быть реализован, а конфигурация традиционного веб-приложения Java сложна.web.xmlФайлы совершенно разные и не нужно тратить слишком много времени на настройку

Построить исполняемый jar

Мы можем упаковать приложение в банку с помощью простой команды:

$ ./mvnw clean package

Выполните эту команду, чтобы запустить приложение:


$ java -jar target/gs-rest-service-0.1.0.jar

сделать несколько простых тестов

Доступ в браузереhtpp://localhost:8080/user/1, если проблем нет, вы получите следующий ответ:

{
    "id": 1,
    "name": "张三"
}

Суммировать

Это просто веб-служба RESTful, для получения дополнительной документации посетите:Building a RESTful Web Service

Личный блог обновляется синхронно.Блог Паулы Ченг