Spring a Spring Boot nejsou konkurenční nástroje, ale vzájemně se doplňují. Modul Spring Boot je ve skutečnosti postaven na architektuře Spring, takže pochopení rozdílu mezi nimi nespočívá ani tak ve výběru jednoho z nich, jako spíše v tom, co každý nástroj nabízí.
Nejprve si vysvětlíme dva pojmy, které se často objeví při vyhodnocování vývojových architektur: nenabízející strukturu a nabízející strukturu.
Architektury nenabízející strukturu
Architektura nenabízející strukturu dává vývojářům volnost strukturovat věci podle toho, jak se jim to hodí. To nabízí maximální flexibilitu a dává více kontroly do rukou vývojového týmu. Je však třeba si uvědomit, že konfigurace a zprovoznění aplikace vyžaduje také větší odborné znalosti a více přípravné práce.
Architektury nabízející strukturu
Architektura nabízející strukturu stanovuje jasnou, dobře definovanou cestu, která vyhovuje většině týmů ve většině situací. Snižuje únavu z rozhodování, podporuje konzistenci napříč základy kódu a novým vývojářům usnadňuje rychlé zapracování. I když je kompromisem menší flexibilita, ve většině scénářů vývoje moderních aplikací se to vyplatí.
Architektura Spring je plně konfigurovatelná a nenabízející strukturu, což znamená, že neomezuje konkrétní způsob sestavení vaší aplikace. Tato flexibilita je silná stránka, ale má i svou cenu: Vývojáři musí dopředu udělat spoustu rozhodnutí a napsat značné množství konfiguračního kódu, než můžou začít vytvářet samotnou aplikaci.
Model Spring Boot využívá jiný přístup. Protože nabízí strukturu, provádí za vás výchozí rozhodnutí, takže se můžete soustředit na psaní aplikační logiky místo na nastavování. Je navržený pro rychlost a jednoduchost, takže vývojáři se dostanou od nuly k běžící aplikaci za mnohem kratší dobu než při práci pouze s architekturou Spring.
Hlavní schopností, díky které je přístup modulu Spring Boot nabízející strukturu tak účinný, je automatická konfigurace. Místo toho, aby vývojáři museli ručně propojit každou komponentu aplikace, Spring Boot automaticky rozpozná, co je obsaženo v classpath, a podle toho aplikaci nakonfiguruje. To je jeden z hlavních důvodů, proč vývojové týmy sahají po architektuře Spring Boot, když potřebují postupovat rychle, aniž by dělaly kompromisy.