Wat is Spring Boot?
Java Spring Boot is een opensource-hulpprogramma waarmee je eenvoudiger op Java gebaseerde frameworks kunt gebruiken om microservices en web-apps te maken. Voor elke definitie van Spring Boot moet het gesprek beginnen met Java, een van de populairste en meest gebruikte ontwikkelingstalen en computingplatforms voor de ontwikkeling van apps. Ontwikkelaars over de hele wereld beginnen hun programmeertraject om Java te leren. Java is flexibel, gebruiksvriendelijk en is een favoriet voor ontwikkelaars voor allerlei apps, van sociale media, web- en gaming-apps tot netwerken en bedrijfstoepassingen.
Java en het Spring-framework
Hoewel Java gemakkelijk te gebruiken is en gemakkelijker te leren is dan andere talen, is het complexiteitsniveau voor het bouwen, fouten opsporen en implementeren van Java-apps geëscaleerd tot nieuwe hoogten. Dit wordt veroorzaakt door het exponentieel aantal variabelen waarmee moderne ontwikkelaars te maken krijgen bij het ontwikkelen van web-apps of mobiele apps voor algemene moderne technologieën, zoals muziekstreaming of apps voor mobiel betalen. Een ontwikkelaar die een eenvoudige Line-Of-Business-app schrijft, heeft nu te maken met meerdere bibliotheken, invoegtoepassingen, foutregistratie en verwerking van bibliotheken, integraties met webservices en meerdere talen, zoals C#, Java, HTML en andere. Begrijpelijkerwijs is er een onverwerkbare vraag naar hulpprogramma's die de ontwikkeling van Java-apps stroomlijnen, waardoor de ontwikkelaars tijd en geld besparen.
Voer toepassingsframeworks in voor de grote hoofdteksten, van vooraf geschreven code die ontwikkelaars kunnen gebruiken en toevoegen aan hun eigen code, zoals hun behoeften dat dicteren. Deze frameworks verminderen de belasting van de ontwikkelaar voor vrijwel elke behoefte, ongeacht of ze mobiele en web-apps ontwikkelen of werken met bureaubladen en API's. Frameworks maken het maken van apps sneller, eenvoudiger en veiliger door herbruikbare code en hulpprogramma's te bieden om de verschillende elementen van een softwareontwikkelingsproject aan elkaar te koppelen.
Hier komt Spring aan bod: Spring is een opensource-project dat een gestroomlijnde, modulaire benadering biedt voor het maken van apps met Java. De reeks van Spring -projecten in 2003 gestart als reactie op de complexiteit van vroege Java-ontwikkeling en biedt ondersteuning voor het ontwikkelen van Java-apps. De naam Spring verwijst meestal naar het toepassingsframework zelf of de hele groep projecten of modules. Java Spring Boot is een specifieke module die is gebouwd als uitbreiding van het Spring-framework.
Met die achtergrond over hoe het Spring-framework, Spring Boot en Java samenwerken, is hier de definitie van Spring Boot, het hulpprogramma waarmee de ontwikkeling van web-apps en microservices binnen het Java-framework, Spring, wordt gestroomlijnd en versnelt.
Soms, omdat de taal en/of het platform Java is, wordt het aangeduid als "Java Spring Boot," het "Java Spring-framework," of het "Spring Boot framework." Omdat er echter andere externe frameworks zijn voor Java, zoals Play en Hibernate, is het nauwkeuriger om "Spring" en "Spring Boot te zeggen."
Lees het artikel Wat is Java? voor een algemene bespreking van de basisbeginselen van Java
Wat is het verschil tussen Spring en Spring Boot?
Zoals eerder vermeld, is Spring een opensource-, op Java gebaseerd app-framework dat veel kleinere projecten onder de paraplu beslaat. Andere populaire Spring-projecten bevatten Spring Data, Spring Cloud en Spring Security, om er maar een paar te noemen. Om het verschil tussen Spring Boot en Spring te begrijpen, is het belangrijk om te weten dat, hoewel er mogelijk verschillen zijn in de kernmogelijkheden, alles in de Spring-serie zit.
Om de verschillen tussen Spring en Spring Boot volledig te begrijpen, moeten we eerst enkele belangrijke termen definiëren.
Wat zijn microservices?
Wat is afhankelijkheidsinjectie?
Afhankelijkheidsinjectie (DI) is een ontwerptechniek die wordt gebruikt om een Inversion of Control (IoC) te bereiken. In objectgeoriënteerd programmeren, zoals Java, worden objecten die afhankelijk zijn van andere objecten afhankelijkheden genoemd. Normaal gesproken wordt het ontvangende of afhankelijke object een client genoemd en wordt het object waar de client afhankelijk van is een service genoemd. Afhankelijkheidsinjectie geeft de service door aan de client, of "injecteren" de afhankelijkheid met behulp van code die een sql-code wordt genoemd. DI elimineert de noodzaak voor de client om op te geven welke service de client moet gebruiken, de injectie doet dat werk voor de client.
Wat is conventie voor configuratie?
Convention over configuration, ook wel codering genoemd, is een concept dat wordt gebruikt in toepassingsframeworks om het aantal beslissingen te verminderen dat een ontwikkelaar moet nemen. Het voldoet aan het principe van "jezelf niet herhalen" om te voorkomen dat overbodige code wordt geschreven. Codering volgens conventie streeft ernaar flexibiliteit te behouden terwijl een ontwikkelaar alleen code kan schrijven voor de onconventionele aspecten van de app die ze maken. Wanneer het gewenste gedrag van de app overeenkomt met de vastgestelde conventies, wordt de app standaard uitgevoerd zonder dat je configuratiebestanden hoeft te schrijven. De ontwikkelaar hoeft alleen expliciet configuratiebestanden te schrijven als het gewenste gedrag afwijkt van de "conventie."
Spring-framework tegenover Spring Boot
Spring | Spring Boot | |
---|---|---|
Wat is het? | Een opensource-framework voor webtoepassingen op basis van Java. | Een uitbreiding of module die is gebouwd op basis van het Spring-framework. |
Wat doet het? | Biedt een flexibele, volledig configureerbare omgeving met behulp van hulpprogramma's en bibliotheken met vooraf gebouwde code om aangepaste, losjes gekoppelde web-apps te maken. | Biedt de mogelijkheid om zelfstandige Spring-toepassingen te maken die direct kunnen worden uitgevoerd zonder aantekeningen, XML-configuratie of het schrijven van veel aanvullende code. |
Wanneer kan ik dat het beste gebruiken? | Gebruik Spring als je het volgende wilt:
| Gebruik Spring Boot als je het volgende wilt:
|
Wat is de belangrijkste functie? | Afhankelijkheidsinjectie | Automatische configuratie |
Zijn er ingesloten servers? | Nee. In Spring moet je de servers expliciet instellen. | Ja, Spring Boot wordt geleverd met ingebouwde HTTP-servers zoals Tomcat en Jetty. |
Hoe wordt het geconfigureerd? | Het Spring-framework biedt flexibiliteit, maar de configuratie ervan moet handmatig worden gebouwd. | Spring Boot configureert Spring en andere externe frameworks automatisch volgens het standaard principe "conventie boven configuratie". |
Moet ik weten hoe ik met XML moet werken? | In Spring is kennis van XML-configuratie vereist. | Spring Boot vereist geen XML-configuratie. |
Zijn er CLI-hulpprogramma's voor het ontwikkelen/testen van apps? | Alleen het Spring-framework biedt geen CLI-hulpprogramma's voor het ontwikkelen of testen van apps. | Als Spring-module heeft Spring Boot een CLI-hulpprogramma voor het ontwikkelen en testen van Spring-apps. |
Werkt het vanuit een bevooroordeelde of niet-bevooroordeelde benadering? | Niet-bevooroordeeld* | Bevooroordeeld* |
*Bevooroordeelde versus niet-bevooroordeelde frameworkbenadering
Hoewel het woord "bevooroordeeld" enigszins negatief klinkt, hebben zowel de bevooroordeelde benadering van Spring Boot als de niet-bevooroordeelde Spring-framework hun voordelen.
Bevooroordeelde benadering
Een bevooroordeelde benadering neemt de positie aan dat er een richting is die aanzienlijk eenvoudiger is dan alle andere. De software beperkt ontwerpfuncties en stimuleert ze om dingen op die voorgeschreven manier te doen.
Het biedt een goed pad, een best practice die in de meeste situaties voor de meeste mensen werkt. De app is geschreven volgens deze best practices en wijdverbreide conventies. Met een bevooroordeelde benadering wordt samenwerking en het verkrijgen van hulp bij een codeerproject veel eenvoudiger voor andere ontwikkelaars die ervaring hebben met dat framework. Ze zijn direct vertrouwd met de nieuwe app en kunnen meteen aan de slag.
Niet-bevooroordeelde benadering
Een niet-bevooroordeelde benadering wordt gebruikt als voor alle oplossingen ongeveer dezelfde hoeveelheid inspanning of complexiteit nodig is. Het neemt de positie in dat er niet één juiste manier is om een oplossing voor een probleem te krijgen. In plaats daarvan biedt het flexibele hulpprogramma's die kunnen worden gebruikt om het probleem op verschillende manieren op te lossen. Niet-bevooroordeelde frameworks hebben het voordeel dat ze veel flexibiliteit bieden in de ontwikkeling en dat ontwikkelaars meer controle krijgen. Het belangrijkste nadeel met zoveel flexibiliteit is dat de ontwikkelaar meer beslissingen moet nemen en uiteindelijk meer code moet schrijven omdat het framework zo open en niet-bevooroordeeld is.
Spring Boot-functies en -voordelen
Ten slotte het interessante deel van de kernmogelijkheden die Java Spring Boot biedt buiten het Spring-framework. Spring Boot biedt een eenvoudiger en sneller pad naar het instellen, configureren en uitvoeren van apps. Het elimineert de zware belasting van de configuratie die nodig is voor het instellen van de meeste Spring-apps. Ontwikkelaars kunnen meteen aan de slag en Spring Boot gebruiken zonder dat ze het onderliggende Spring-framework hoeven te leren.
Hier lees je hoe Spring Boot-functies helpen bij het stroomlijnen van Java-programmeertaken. Enkele belangrijke functies van Spring Boot zijn:
-
zelfstandige toepassingen: Spring Boot helpen bij het maken van apps die niet zijn gekoppeld aan een specifiek platform en die lokaal kunnen worden uitgevoerd op een apparaat zonder een internetverbinding of andere geïnstalleerde services om functioneel te zijn.
-
Ingesloten servers: met Spring Boot kan je servers zoals Tomcat, Jetty of Undertow rechtstreeks insluiten.
-
Bevooroordeelde benadering: Spring Boot vereenvoudigt buildconfiguraties door bevooroordeelde starterafhankelijkheden te bieden.
-
Automatische configuratie: Spring Boot configureert Spring en andere externe bibliotheken indien mogelijk automatisch.
-
Functies die gereed zijn voor productie: Spring Boot biedt functies die gereed zijn voor productie, zoals metrische gegevens, statuscontroles en externe configuratie.
Voordelen van Spring Boot
Spring Boot:
-
Vermindert de ontwikkelingstijd en verhoogt de productiviteit: Spring Boot maakt het veel eenvoudiger om Spring-apps te ontwikkelen met Java. De bevooroordeelde Spring-frameworkbenadering vermindert de tijd die wordt besteed aan beslissingen en terugkerende taken en maakt tijd vrij om zich te richten op het maken en testen van de apps.
-
Vermindert de noodzaak om standaardcode, aantekeningen en XML-configuratie te schrijven: ontwikkelaars hoeven geen code te genereren of XML te configureren of zelfs het Spring-framework te leren, als ze dat niet willen.
-
integreert apps in de Spring-projectreeks: Spring Boot-apps naadloos kunnen worden geïntegreerd met andere projecten in het ecosysteem van Spring-framework, zoals Spring Data, Spring Cloud, Spring Security en andere vertrouwde cloudservices zoals Microsoft Azure Spring Cloud.
-
Biedt ontwikkel- en testhulpprogramma's: met het cli-hulpprogramma (opdrachtregelinterface) van Spring Boot en ingesloten HTTP-servers kan je heel eenvoudig omgevingen maken om Spring-apps te ontwikkelen/testen.
-
Biedt invoegtoepassingen en hulpprogramma's om de ontwikkeling eenvoudiger te maken: Spring Boot biedt invoegtoepassingen om te kunnen werken met in-memory databases, evenals andere populaire hulpprogramma's voor buildautomatisering, zoals Apache Maven.
Java Spring Boot-zelfstudies
Als je al bekend bent met het bouwen van apps met behulp van het Spring-framework, zul je het waarschijnlijk eenvoudig vinden om Spring Boot te leren met behulp van de zelfstudies, projectstarters en documentatie in deze sectie. Maar hier is goed nieuws als je snel Spring Boot wilt gebruiken, maar het framework nog niet kent. Het is mogelijk om Spring Boot te leren en ermee aan de slag te gaan voordat je het Spring-framework leert, omdat je veel van de basisprincipes van het framework gaat gebruiken terwijl je verdergaat. Hoewel je hiermee niet alles leert wat je moet weten over het framework, heb je een voorsprong als je besluit dit later te leren.
Een ander voordeel van het leren Spring Boot, naast het veel sneller en efficiënter maken van app-ontwikkeling, is dat je ook andere Spring-mogelijkheden kunt gebruiken, namelijk Spring Data, Project Reactor en Spring Security.
Afhankelijkheidsinjectie
- Op XML gebaseerd, bijv. <beans/> en <namespace:*/>.
- Op aantekeningen gebaseerd, bijv. @Component, @Autowired, @Inject.
- Op Java gebaseerde @Configuration-klassen, @Bean-methoden.
Inversion of control (IoC)
- ApplicationContext: de hoofdinterface die fungeert als de Spring IoC-container.
- BeanFactory: de interface voor toegang tot de Spring-container.
- Hiermee worden de objecten gemaakt, geassembleerd en beheerd door ApplicationContext.
Java Spring Boot-zelfstudies voor beginners
Een Java-app maken en beveiligen
Een Java-app maken met de Spring Initializr met behulp van de Spring Boot-starter voor Microsoft Entra ID (voorheen Azure Active Directory).
Je eerste app implementeren in Azure Spring Cloud
Leer hoe je een eenvoudige Spring Boot-app maakt, inricht en bewaakt die is gebouwd met Spring Initializr.
Een eenvoudige Spring Boot-microservice bouwen
Bouw en implementeer een eenvoudige microservice en leer er vervolgens Spring Cloud-technologieën aan toe te voegen.
Meer Spring Boot-starters
Voeg functies voor opslag, beveiliging, verificatie en sleutelkluis toe aan je Spring Boot-apps.
Veelgestelde vragen
-
Spring Boot is een opensource-, op microservice gebaseerd Java-webframework dat wordt aangeboden door Spring, met name nuttig voor softwaretechnici die web-apps en microservices ontwikkelen.
-
"Spring Boot in Java" is een andere manier om "Java Spring Boot"te zeggen, de twee termen kunnen als synoniem kunnen worden gebruikt. Java is de taal en het platform, Spring is het toepassingsframework op basis van Java en Spring Boot is een uitbreiding van het Spring-framework, met enkele extra voordelen.
-
Spring Boot beschikt over de functionaliteit van het algemene Spring-framework, maar voor Spring Boot hoef je Spring niet te leren. Een ontwikkelaar kan een app sneller starten, omdat Spring Boot-kenmerken automatisch worden geconfigureerd en de meningen veel van de standaardcode en configuratie verwijderen die betrokken zijn bij de ontwikkeling en implementatie van Spring-apps.
-
Ja, zoals hierboven vermeld, is Spring Boot met name nuttig voor een microservicebenadering van softwareontwikkelingsarchitectuur. Microservices zijn een populaire manier om kleine, autonome teams te bouwen die onafhankelijk kunnen werken en van nature alleen in de back-end werken.
-
Kortere ontwikkeltijd, verhoogde productiviteit en gebruiksgemak zijn slechts enkele voordelen van het ontwikkelen van Spring Boot-apps.
-
Er zijn veel zelfstudies, quickstarts en documentatie over de Spring-website evenals Spring Boot-starters en documentatie van Microsoft Azure. Als je meteen aan de slag wilt met het implementeren van Spring Boot-apps, bekijk je de webinar Versnel Spring Boot-toepassingen op grote schaal naar de cloud.