Spring og Spring Boot er ikke konkurrerende verktøy – de utfyller hverandre. Spring Boot er egentlig bygget på Spring-rammeverket, så det å forstå forskjellen handler mindre om å velge det ene fremfor det andre, og mer om å vite hva hver av dem bidrar med.
Først skal vi se nærmere på to begreper som ofte dukker opp når man vurderer utviklingsrammeverk: rammeverk uten sterke føringer og rammeverk med klare føringer.
Rammeverk uten sterke føringer
Et rammeverk uten sterke føringer gir utviklere frihet til å strukturere ting slik de selv mener er best. Dette gir maksimal fleksibilitet og legger mer kontroll i hendene på utviklingsteamet. Merk imidlertid at det også krever mer kompetanse og mer arbeid i forkant å konfigurere og kjøre en app.
Rammeverk med klare føringer
Et rammeverk med klare føringer etablerer en tydelig og velprøvd vei, som fungerer godt for de fleste team i de fleste situasjoner. Det reduserer beslutningstretthet, fremmer konsistens på tvers av kodebaser og gjør det enklere for nye utviklere å komme raskt i gang. Selv om kompromisset er mindre fleksibilitet, er det for de fleste moderne scenarier for applikasjonsutvikling en god byttehandel.
Spring-rammeverket kan konfigureres fullt ut og har få føringer, noe som betyr at det ikke foreskriver én bestemt måte å bygge applikasjonen på. Denne fleksibiliteten er nyttig, men har en bakside: Utviklere må ta mange valg på forhånd og skrive mye konfigurasjonskode før de kan begynne å bygge selve applikasjonen.
Spring Boot tar en annen tilnærming. Fordi det har klare føringer, tar det standardvalg på dine vegne, slik at du kan fokusere på å skrive applikasjonslogikk i stedet for oppsett. Det er utviklet med tanke på hastighet og enkelhet, slik at utviklere kommer fra ingenting til en kjørende applikasjon på langt kortere tid enn med Spring-rammeverket alene.
Den viktigste funksjonen som gjør Spring Boots føringsstyrte tilnærming så effektiv, er automatisk konfigurasjon. I stedet for at utviklere manuelt må koble sammen hver eneste komponent i en app, oppdager Spring Boot automatisk hva som finnes på klassenivået og konfigurerer appen deretter. Det er en av de viktigste grunnene til at utviklingsteam velger Spring Boot-rammeverket når de må bevege seg raskt uten å slurve med kvaliteten.