Все говорят о таких микросервисах, как 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
|
package com.chandana.helloworld;import com.chandana.helloworld.bean.Greeting;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/api")public class HelloWorldController { @RequestMapping("/") public String welcome() {//Welcome page, non-rest return "Welcome to RestTemplate Example."; } @RequestMapping("/hello/{name}") public Greeting message(@PathVariable String name) { Greeting msg = new Greeting(name, "Hello " + name); return msg; }} |
Примечание. Если вы заметили, что 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
|
package com.chandana.helloworld.bean;public class Greeting { private String player; private String message; public Greeting(String player, String message) { this.player = player; this.message = message; } public String getPlayer() { return player; } public void setPlayer(String player) { this.player = player; } public String getMessage() { return message; } public void setMessage(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
|
<?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" <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
|
package com.chandana.helloworld;import com.chandana.helloworld.bean.Greeting;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/api")public class HelloWorldController { @RequestMapping("/") public String welcome() {//Welcome page, non-rest return "Welcome to RestTemplate Example."; } @RequestMapping("/hello/{name}") public Greeting message(@PathVariable String name) { Greeting msg = new Greeting(name, "Hello " + name); return msg; }} |
Вывод
Как представляется, реализовать сервисы RESTFul с помощью Spring Boot очень просто. Поэтому у меня появилась идея реализовать бэкэнд моего приложения « Yield Price Sri Lanka » с помощью Spring Boot. Кроме того, в надежде реализовать интерфейс администратора для управления информацией о ценах и товарах, а также общедоступный веб-интерфейс для отображения информации о цене для пользователей, у которых нет приложения для Android. Оставайся на связи.
| Ссылка: | Создание службы RESTFul с использованием Spring Boot от нашего партнера по JCG |


