Эта статья - мягкая статья, я хотел бы порекомендовать ее всемspark-java
этот каркас, здесьspark
Не про большие данныеapache-spark
, а микрофреймворк для создания веб-приложений. Я кратко представлю его вам ниже.
1. Введение в искру
Spark — микрофреймворк для создания веб-приложений с минимальными накладными расходами на Kotlin и Java 8.
Быстрый старт:
Java:
import static spark.Spark.*;
public class HelloWorld {
public static void main(String[] args) {
get("/hello", (req, res) -> "Hello World");
}
}
Kotlin
import spark.kotlin.*
fun main(args: Array<String>) {
val http: Http = ignite()
http.get("/hello") {
"Hello Spark Kotlin!"
}
}
Беги, чтобы увидеть:
http://localhost:4567/hello
Рожден для продуктивности
Spark Framework — это простая и выразительная веб-инфраструктура Java/Kotlin, DSL (предметно-ориентированный язык/DSL), созданная для быстрой разработки. Цель Spark — предоставить разработчикам Kotlin/Java альтернативу для разработки своих веб-приложений с максимальной выразительностью и минимальным шаблоном. Благодаря четкой философии Spark разработан не только для того, чтобы сделать вашу работу более продуктивной, но и для того, чтобы сделать ваш код лучше благодаря гибкости, декларативному характеру и богатым выражениям Spark.
Вы можете воспользоваться всеми преимуществами JVM
JVM предоставляет одну из крупнейших экосистем программирования в мире. Несмотря на то, что в нем есть много веб-фреймворков Java, веб-разработка на чистом Java традиционно громоздка. Если вы любите JVM, но ненавидите громоздкий код и фреймворки, то Spark — это веб-фреймворк для вас. Он запускается и запускается за считанные минуты, и вы можете использовать его в Groovy, Kotlin или любом другом языке, который вы используете. Spark — это выразительная, легкая и открытая веб-инфраструктура на чистом языке Java (и Kotlin), которая, в отличие от других платформ, позволяет создавать приложения по своему усмотрению.
Микросервисы, микросервисы везде! ! !
2015 год был годом взрыва микросервисов, и теперь, если вы начнете изучать микросервисы, вы поймете, что Spark отлично подходит для микросервисов. Микросервисы лучше всего работают с микрофреймворками, и Spark может создать ваш REST API, обслуживающий JSON, менее чем за десять строк кода. Хотя Spark в основном используется для создания REST API, он также поддерживает различные механизмы шаблонов. Почему бы не создать приложение Spark для серверной части и одно для внешнего интерфейса?
NodeJS-разработчик? с типскриптом? Вместо этого попробуйте Spark!
Позже NodeJS взял на себя большую часть веб-разработки на стороне сервера, но все больше и больше разработчиков NodeJS используют TypeScript и другие языки со статической типизацией, которые компилируются в JavaScript. Почему бы не быть полностью последовательным и не использовать язык, который на самом деле был разработан с использованием типов и предназначен для работы на стороне сервера? Вы также получаете все преимущества запуска вашего приложения на JVM, где библиотека классов не устаревает каждый день. Если вы перейдете с ExpressJS, синтаксис Spark будет очень знаком, и, в отличие от многих веб-фреймворков JavaScript, Spark не устареет в будущем.
Типичное использование
Наш опрос 2015 года показал, что более 50% пользователей Spark используют Spark для создания REST API, а около 25% используют Spark для создания веб-сайтов. Около 15% приложений Spark обслуживают более 10 000 пользователей в день. нажмитездесьПрочитайте полный опрос.
2. Пример кода
Getting started
Текущая версия 2.9.0, другие версии можно найти вreleases
compile group: 'com.sparkjava', name: 'spark-core', version: '2.9.0'
public class com.SparkJavaApplication {
public static void main(String[] args) {
get("/hello", (req, res) -> "Hello World");
}
}
больше примеров
public class com.SparkJavaApplication {
public static void main(String[] args) {
port(4567);
get("/hello", (req, res) -> "Hello World");
get("/users/:name", (request, response) -> "Selected user: " + request.params(":name"));
get("/news/:section", (request, response) -> {
response.type("text/xml");
return "<?xml version=\"1.0\" encoding=\"UTF-8\"?><news>" + request.params("section") + "</news>";
});
get("/protected", (request, response) -> {
halt(403, "I don't think so!!!");
return null;
});
get("/redirect", (request, response) -> {
response.redirect("/news/world");
return null;
});
get("/", (request, response) -> "root");
get("/hello2", "application/json", (request, response) -> {
return "{\"message\": \"Hello World\"}";
});
}
}
Вы можете определить открытый порт, используя функцию port().
При этом параметры Spark передаются как:param
Он передается в виде , и метод получения также является широко используемым request.params("paramName").
При определении интерфейса вы также можете указать тип, получаемый интерфейсом, например «application/json».
Кроме того, в дополнение к методу get в следующем примере показаны другие методы, такие как post и put:
public class Books {
/**
* Map holding the books
*/
public static Map<String, Book> books = new HashMap<>();
// Creates a new book resource, will return the ID to the created resource
// author and title are sent as query parameters e.g. /books?author=Foo&title=Bar
public static void main(String[] args) {
post("/books", (request, response) -> {
String author = request.queryParams("author");
String title = request.queryParams("title");
Book book = new Book(author, title);
Random random = new Random();
int id = random.nextInt(Integer.MAX_VALUE);
books.put(String.valueOf(id), book);
response.status(201); // 201 Created
return id;
});
// Gets the book resource for the provided id
get("/books/:id", (request, response) -> {
Book book = books.get(request.params(":id"));
if (book != null) {
return "Title: " + book.getTitle() + ", Author: " + book.getAuthor();
} else {
response.status(404); // 404 Not found
return "Book not found";
}
});
// Updates the book resource for the provided id with new information
// author and title are sent as query parameters e.g. /books/<id>?author=Foo&title=Bar
put("/books/:id", (request, response) -> {
String id = request.params(":id");
Book book = books.get(id);
if (book != null) {
String newAuthor = request.queryParams("author");
String newTitle = request.queryParams("title");
if (newAuthor != null) {
book.setAuthor(newAuthor);
}
if (newTitle != null) {
book.setTitle(newTitle);
}
return "Book with id '" + id + "' updated";
} else {
response.status(404); // 404 Not found
return "Book not found";
}
});
// Deletes the book resource for the provided id
delete("/books/:id", (request, response) -> {
String id = request.params(":id");
Book book = books.remove(id);
if (book != null) {
return "Book with id '" + id + "' deleted";
} else {
response.status(404); // 404 Not found
return "Book not found";
}
});
// Gets all available book resources (id's)
get("/books", (request, response) -> {
StringBuilder ids = new StringBuilder();
for (String id : books.keySet()) {
ids.append(id).append(" ");
}
return ids.toString();
});
}
}
Дополнительные примеры могут относиться кгитхаб проект
Суммировать
Spark — это очень легкий веб-фреймворк, и если вам не нужно так много функций и вы просто предоставляете простой веб-интерфейс, то Spark — очень подходящий выбор. Кроме того, Spark также подходит для архитектуры микросервисов, функций у него больше, если вам интересно, вы можете изучить его самостоятельно. Эта статья является лишь введением, так что мне не нужно ссылаться на веб-фреймворк Spring, который занимает большой объем памяти, а скорость запуска проекта взлетела до небес.
Ссылаться на
- моя демонстрация:GitHub.com/basketball920320/tickets…
- Официальный сайт:sparkjava.com/
- Официальная документация:sparkjava.com/document ATI…
- адрес проекта:GitHub.com/ProvinceFace/это…