Tento článek se zabývá prozkoumáním a úvodem do frameworku Java Spring – spring.io. Jedná se o open-source framework pro vývoj J2EE aplikací, které zahrnují podnikové aplikace, informační systémy, a také vysokou podporu pro RESTful služby, na které se v tomto článku zaměříme.

https:/spring.io/

 

Principy technologie

Framework jako takový je organizovaný do několika modulů. Hlavní skupiny těchto modulů, podstatné pro tvorbu REST API jsou:

  • Core Container Základní části frameworku
  • Data Access / Integration Poskytuje přístup k datům (např JDBC – Java Database Connectivity)
  • Web Poskytuje veškeré funkce pro webové aplikace, včetně podpory pro RESTful webové služby. Základem těchto služeb je zde Model-View-Controller architektura podobně jako v předchozí sekci u technologie ASP.NET Core

Celý princip práce s tímto frameworkem je tedy velice podobný jako u ASP.NET Core, probraného v předchozím článku. Na začátku vytvoříme controller, obstarávající HTTP požadavky na nějaký zdroj (např: PUT:/articles, nebo GET:/comments/id), a opět ke každému zdroji vytvoříme nějaký model, což bude tentokrát Java třída.

Vrstvu View zde také nemusíme nijak výrazně řešit, protože pracujeme např. s JSON objekty a o potřebné se postará ve Springu zabudovaná knihovna Jackson-JSON, která převádí instance Java objektů do jejich JSON reprezentace.

Perzistance dat pak zajišťuje datová vrstva frameworku, která umožňuje snadný přístup k několika druhům databází, včetně např. MongoDB, která pracuje přímo s JSON objektu a pro RESTové API s těmito objekty pracující, pak může být více než zajímavá.

Rozdíl oproti ASP.NET Core je také možnost volby různých IDE (vývojových prostředí). Zatímco ASP.NET Core se zaměřuje na Visual Studio, které pro něj má nejvyšší podporu, v případě Springu lze sáhnout hned po několika různých IDE, avšak ty pro něj nebudou mít tak velkou podporu jako např. výše zmiňované Visual Studio pro ASP.NET.

Práci nám zde usnadní také velká řada balíčků vytvořených pro jazyk Java, k těm se snadno dostaneme pomocí buildovacích nástroju Gradle nebo Maven

Ukázky kódu

Model pro zdroj typu article (článek):


public class Article {
	public final long id;
	public final String title;
	public final String content;
	// pripadne pouzijeme private a getter + setter
}

 

Metoda GET article podle id v controlleru pro články:


@RestController
public class ArticlesController {
	@RequestMapping("/articles")
	public Article getArticle(@RequestParam(value="id",
	 defaultValue="0") int id) 	{
		// nacteme podle ID, ale opet v ukazce 
		// nebudeme rozebirat nacteni z databaze
		return new Article();
	}
}

 

Hlavní výhody

  • JSON Databáze Možnost snadno napojit na JSON databáze typu MongoDB.
  • Řada dostupných komponentů Můžeme využívat řadu dalších komponentů vytvořených v jazyce Java.
  • Rozsáhlost Rozsáhlý a rozšířený framework.

Hlavní nevýhody

  • Asynchronní operace Nemá tak dobrou podporu pro asynchronní funkce jako např. ASP.NET Core.
  • Orientace ve frameworku celkově Jelikož se jedná o velice rozsáhlý framework, může zabrat nějakou dobu se v něm zorientovat jako v celku.

Celkové zhodnocení

1 – nejlepší, 5 – nejhorší

  • Jednoduchost a intuitivnost – 3 Jednoduchá architektura MVC, ale např. oproti ASP.NET Core chybí snadné napojení na cloud a horší práce s asynchronními funkcemi.
  • Dokumentace – 2 Dobrá dokumentace na stránkách projektu (spring.io), avšak není tak rozsáhlá jako např. u ASP.NET Core.
  • Spolehlivost – 1 Poskytuje vysoké možnosti zabezpečení, ve firmách je Spring i Java EE vysoce uznávána a brána za spolehlivou technologii používající se i u bankovních systémů.
  • Popularita – 1 Celkově je Java EE brán jako jeden z nejpopulárnějších jazyků pro tvorbu webových aplikací, výjimkou ve vysoké popularitě není ani Spring framework, jehož popularita v posledních letech stále roste.

Mezi další populární technologie pro jazyk Java lze řadit:

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *