Все говорят о таких микросервисах, как WSO2 Microservice Framework , Spring Boot и т. Д. Поскольку я не работал над проектом, связанным с Spring, очень давно, я подумал о реализации простого сервиса RESTFul с использованием Spring Boot.
Итак, я начал с документации Spring. Это просто. Вы можете создать структуру своего проекта, используя « Spring Initializr ». Это онлайн-инструмент, в который вы можете добавить все нужные зависимости в POM-файл вашего проекта. Так как я большой поклонник Maven, я создаю проект Maven.
В пользовательском интерфейсе Spring Initializr вы можете выбрать язык, версию начальной загрузки Spring, идентификатор группы проекта, имя артефакта и т. Д. Пожалуйста, обратитесь к снимку экрана ниже, чтобы получить информацию, которую я предоставил при создании проекта.
При нажатии на «Создать проект» он загрузит заархивированный maven проект на ваш компьютер. Разархивируйте его и импортируйте в IDE. Начальная структура проекта, как показано ниже.
В моей реализации сервиса HelloWorld REST он принимает имя пользователя в качестве параметра пути (или параметра URL) и возвращает приветствие JSON (ответ). Поэтому я ожидаю вызвать мою службу REST, позвонив по следующему URL: APP_NAME / api / hello / chandana.
@RestController — это способ реализации сервиса RESTFul с использованием Spring. Итак, этот новый класс контроллера будет называться HelloWorldController. Так что мой класс HelloWorldController выглядит следующим образом.
| 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | packagecom.chandana.helloworld;importcom.chandana.helloworld.bean.Greeting;importorg.springframework.web.bind.annotation.PathVariable;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/api")publicclassHelloWorldController {    @RequestMapping("/")    publicString welcome() {//Welcome page, non-rest        return"Welcome to RestTemplate Example.";    }    @RequestMapping("/hello/{name}")    publicGreeting message(@PathVariableString name) {        Greeting  msg = newGreeting(name, "Hello "+ name);        returnmsg;    }} | 
Примечание. Если вы заметили, что Spring Boot 1.5.6 неправильно импортирует классы и отображает сообщение об ошибке «Не удается разрешить символ RestController» в вашей среде IDE, необходимо понизить версию Spring, которая используется в проекте. Spring Boot 1.5.6 по умолчанию использует зависимость Spring 4.3.10.RELEASE, и ее необходимо снизить до 4.3.9.RELEASE. Поэтому добавьте <spring.version> 4.3.9.RELEASE </spring.version> в раздел свойств вашего файла POM.
Так что все на месте. Я могу собрать и запустить проект Spring Boot, используя команду ниже maven. Он скомпилирует проект и запустит его.
mvn spring-boot: беги
При запуске сервера вы можете увидеть зарегистрированный URL-адрес службы REST в консоли, как показано ниже
ИНФОРМАЦИЯ 9556 — [main] swsmmaRequestMappingHandlerMapping: сопоставлено « {[/ api / hello / {name}]} » с общедоступным com.chandana.helloworld.bean.Greeting com.chandana.helloworld. HelloWorldController . сообщение (java.lang.String)
ИНФОРМАЦИЯ 9556 — [main] swsmmaRequestMappingHandlerMapping: сопоставлено « {[/ api /]} » с общедоступным java.lang.String com.chandana.helloworld. HelloWorldController . добро пожаловать () 2017-0
Наконец, можно вызвать службу REST, открыв этот URL: http: // localhost: 8080 / api / hello / NAME
Окончательная структура проекта:
Приветственный класс POJO:
| 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | packagecom.chandana.helloworld.bean;publicclassGreeting {    privateString player;    privateString message;    publicGreeting(String player, String message) {        this.player = player;        this.message = message;    }    publicString getPlayer() {        returnplayer;    }    publicvoidsetPlayer(String player) {        this.player = player;    }    publicString getMessage() {        returnmessage;    }    publicvoidsetMessage(String message) {        this.message = message;    }} | 
POM XML:
| 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <modelVersion>4.0.0</modelVersion> <groupId>com.chandana</groupId> <artifactId>helloworld</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>helloworld</name> <description>Demo project for Spring Boot</description> <parent>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-parent</artifactId>  <version>1.5.6.RELEASE</version>  <relativePath/> <!-- lookup parent from repository --> </parent> <properties>  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>  <java.version>1.8</java.version>  <spring.version>4.3.9.RELEASE</spring.version> </properties> <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> </dependencies> <build>  <plugins>   <plugin>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-maven-plugin</artifactId>   </plugin>  </plugins> </build></project> | 
Класс HelloWorldController:
| 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | packagecom.chandana.helloworld;importcom.chandana.helloworld.bean.Greeting;importorg.springframework.web.bind.annotation.PathVariable;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/api")publicclassHelloWorldController {    @RequestMapping("/")    publicString welcome() {//Welcome page, non-rest        return"Welcome to RestTemplate Example.";    }    @RequestMapping("/hello/{name}")    publicGreeting message(@PathVariableString name) {        Greeting  msg = newGreeting(name, "Hello "+ name);        returnmsg;    }} | 
Вывод
Как представляется, реализовать сервисы RESTFul с помощью Spring Boot очень просто. Поэтому у меня появилась идея реализовать бэкэнд моего приложения « Yield Price Sri Lanka » с помощью Spring Boot. Кроме того, в надежде реализовать интерфейс администратора для управления информацией о ценах и товарах, а также общедоступный веб-интерфейс для отображения информации о цене для пользователей, у которых нет приложения для Android. Оставайся на связи.
| Ссылка: | Создание службы RESTFul с использованием Spring Boot от нашего партнера по JCG | 


