Sparkjava

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

Spark - безкоштовний фреймворк для веб-додатків із відкритим кодом, написаний на Java. Це альтернатива іншим фреймворкам, таким як JAX-RS, Play framework і Spring MVC. За замовчуванням він працює на вбудованому веб-сервері Jetty, але може використовувати і інші.

Spark дає можливість дуже швидко створити свій сервер для обробки HTTP-запитів. За легкістю розгортання він наближається до node.js, проте він гарантує працездатність вашої програми і на наступних версіях фреймворку. Тут розміщена детальна інструкція із підключення фреймворку.

Опираючись на ідеї Sinatra, він не відповідає архітектурі model–view–controller, на відміну від Spring MVC та інших. Замість цього Spark призначений для "швидкого створення веб-додатку в Java з мінімальними зусиллями".

В якості шаблонізатора може використовуватися Apache Velocity.

Spark створений довкола Java 8 лямбда філософії, що робить типовий код на Spark значно коротшим, ніж більша частина додатків, написаних в інших веб-фреймворках Java.

Приклад:

import static spark.Spark.*;
import spark.template.velocity.VelocityEngine;
 
public class HelloWorld {
   public static void main(String[] args) {
 
      //обробка запиту з виокремленням параметру
      get("/hello/:name", (request, response) -> {
          //встановленя cookies
          response.cookie("foo", "bar", 3600);
          return "Hello: " + request.params(":name");
      });
 
      //обробка запиту з вкоистанням шаблонізатора
      get("/velo", (request, response) -> {
          Map<String, Object> model = new HashMap<>();
          model.put("hello", "Velocity World");
 
          // файл vm розташований у теці "Ресурси"
          return new ModelAndView(model, "velo.vm");
      }, new VelocityTemplateEngine());
 
      //обробка POST-запиту
      post("/", (request, response) -> {
          //перенаправлення запиту
          response.redirect("/bar", 301);
      });
 
      //код, що спрацює перед обробкою запиту, що підпадає під шаблон /protected/*
      before("/protected/*", (request, response) -> {
          //переривання обробки запиту з поверненням коду помилки та текстовим повідомленням
          halt(401, "Go Away!");
      });
 
   }
}


Шаблон velo.vm

Hello ${hello}!

Документація Spark Framework

Проект NetBeans з прикладом серверу та шаблонізатором