Belangrijke componenten en interne aspecten van het Spring Boot-framework

In mijn vorige bericht “Kennismaking met Spring Boot”, hebben we gesproken over de basisprincipes van Spring Boot. Nu zullen we praten over “Wat zijn de belangrijkste onderdelen van Spring Boot” en “Hoe Spring Boot onder de motorkap werkt”.

Belangrijkste onderdelen van het Spring Boot Framework

Het Spring Boot Framework heeft voornamelijk vier belangrijke onderdelen.

  • Spring Boot Starters
  • Spring Boot AutoConfigurator
  • Spring Boot CLI
  • Spring Boot Actuator

LET OP:- Naast deze vier belangrijke onderdelen zijn er nog twee Spring Boot-onderdelen:

  • Spring Initilizr
  • Spring Boot IDE’s

Om snel nieuwe Spring Boot-projecten te starten, kunnen we de “Spring Initializr” webinterface gebruiken. Spring Initializr URL: https://start.spring.io. We hebben veel Spring Boot IDE’s zoals Eclipse IDE, IntelliJ IDEA, Spring STS Suite, enz. We zullen deze twee onderdelen bespreken in komende berichten. Nu zullen we deze vier Spring Boot-onderdelen één voor één in detail bespreken.

Spring Boot Starter

Spring Boot Starters zijn een van de belangrijkste kenmerken of onderdelen van het Spring Boot-framework. De belangrijkste verantwoordelijkheid van Spring Boot Starter is om een groep gemeenschappelijke of gerelateerde afhankelijkheden te combineren tot enkele afhankelijkheden. We zullen deze verklaring in detail verkennen aan de hand van een voorbeeld. Bijvoorbeeld, als we een Spring-webapplicatie willen ontwikkelen met de Tomcat-webserver, moeten we de volgende minimale jar-afhankelijkheden toevoegen aan het pom.xml-bestand van uw Maven of het build.gradle-bestand van Gradle

  • Spring core Jar-bestand (spring-core-xx.jar)
  • Spring Web Jar-bestand (spring-web-xx.jar)
  • Spring Web MVC Jar-bestand (spring-webmvc-xx.jar)
  • Servlet Jar-bestand (servlet-xx.jar)

Als we wat databasefunctionaliteit willen toevoegen, moeten we databasegerelateerde jars toevoegen zoals het Spring JDBC-jar-bestand, Spring ORM-jar-bestanden, Spring Transaction Jar-bestand, enzovoort.

  • Spring JDBC Jar-bestand (spring-jdbc-xx.jar)
  • Spring ORM Jar-bestand (spring-orm-xx.jar)
  • Spring Transaction Jar-bestand (spring-transaction-xx.jar)

We moeten veel afhankelijkheden definiëren in onze build-bestanden. Dit is een zeer vervelende en tijdrovende taak voor een ontwikkelaar. Bovendien vergroot het de omvang van onze build-bestanden. Wat is de oplossing om zoveel afhankelijkheden te vermijden in onze build-bestanden? De oplossing is de Spring Boot Starter-component. De Spring Boot Starter-component combineert alle gerelateerde JAR-bestanden in één enkel JAR-bestand, zodat we alleen een JAR-bestand aan onze build-bestanden hoeven toe te voegen. In plaats van de bovenstaande 4 JAR-bestanden aan onze build-bestanden toe te voegen, hoeven we slechts één JAR-bestand toe te voegen: het “spring-boot-starter-web” JAR-bestand. Wanneer we de afhankelijkheid van het “spring-boot-starter-web” JAR-bestand toevoegen aan onze build-bestanden, zal het Spring Boot-framework automatisch alle vereiste JAR-bestanden downloaden en toevoegen aan ons project-classpath. Op dezelfde manier laadt het “spring-boot-starter-logging” JAR-bestand al zijn afhankelijkheids-JAR-bestanden zoals “jcl-over-slf4j, jul-to-slf4j, log4j-over-slf4j, logback-classic” in ons project-classpath.

Belangrijkste voordelen van Spring Boot Starter

  • Spring Boot Starter vermindert het definiëren van veel afhankelijkheden en vereenvoudigt de project-buildafhankelijkheden.
  • Spring Boot Starter vereenvoudigt de project-buildafhankelijkheden.

Dat is alles over de Spring Boot Starter-component. We zullen inkomende berichten meer details bespreken met enkele voorbeelden van Spring Boot.

Lente Boot AutoConfigurator

Een andere belangrijke component van het Spring Boot Framework is de Spring Boot AutoConfigurator. De meeste critici van het Spring IO Platform (Spring Framework) zijn van mening dat “het ontwikkelen van een op Spring gebaseerde applicatie veel configuratie vereist (ofwel XML-configuratie of annotatieconfiguratie)”. Hoe lossen we dit probleem op? De oplossing voor dit probleem is de Spring Boot AutoConfigurator. De belangrijkste verantwoordelijkheid van de Spring Boot AutoConfigurator is het verminderen van de Spring-configuratie. Als we Spring-applicaties ontwikkelen in Spring Boot, dan hoeven we geen enkele XML-configuratie te definiëren en bijna geen of minimale annotatieconfiguratie. De Spring Boot AutoConfigurator-component zal voorzien in die informatie. Bijvoorbeeld, als we een Spring MVC-toepassing willen declareren met behulp van het Spring IO Platform, dan moeten we veel XML-configuratie definiëren zoals views, view resolvers, enz. Maar als we het Spring Boot Framework gebruiken, dan hoeven we die XML-configuratie niet te definiëren. De Spring Boot AutoConfigurator zal dit afhandelen. Als we het “spring-boot-starter-web” JAR-bestand gebruiken in ons project-buildbestand, dan zal de Spring Boot AutoConfigurator views, view resolvers, enz. automatisch oplossen. En ook Spring Boot vermindert het definiëren van annotatieconfiguratie. Als we de annotatie @SpringBootApplication op klasseniveau gebruiken, dan zal de Spring Boot AutoConfigurator automatisch alle vereiste annotaties toevoegen aan de Java-klassen bytecode. Als we de Spring Boot-documentatie bekijken, kunnen we de volgende definitie vinden voor @SpringBootApplication.

@Target(value=TYPE)
@Retention(value=RUNTIME)
@Documented
@Inherited
@Configuration
@EnableAutoConfiguration
@ComponentScan
public @interface SpringBootApplication

Dat is, @SpringBootApplication = @Configuration + @ComponentScan + @EnableAutoConfiration. Dat is het over Spring Boot AutoConfiguraties. We zullen wat meer details bespreken met enkele voorbeelden van Spring Boot in komende berichten. OPMERKING:-

  • In eenvoudige woorden, Spring Boot Starter vermindert de afhankelijkheden van de build en Spring Boot AutoConfigurator vermindert de Spring-configuratie.
  • Zoals we hebben besproken dat Spring Boot Starter afhankelijk is van Spring Boot AutoConfigurator, activeert Spring Boot Starter automatisch Spring Boot AutoConfigurator.

Spring Boot CLI

Spring Boot CLI (Command Line Interface) is een Spring Boot-software om Spring Boot-toepassingen uit te voeren en te testen vanaf de opdrachtprompt. Wanneer we Spring Boot-toepassingen uitvoeren met CLI, gebruikt het intern Spring Boot Starter en Spring Boot AutoConfiguraties om alle afhankelijkheden op te lossen en de toepassing uit te voeren. We kunnen zelfs Spring Webtoepassingen uitvoeren met eenvoudige Spring Boot CLI-opdrachten. Spring Boot CLI heeft een nieuwe “spring” opdracht geïntroduceerd om Groovy-scripts vanaf de opdrachtprompt uit te voeren. voorbeeld van spring-opdracht:

spring run HelloWorld.groovy

Hier is HelloWorld.groovy een Groovy script bestandsnaam. Net als Java-bronbestandsnamen hebben *.java extensie, hebben Groovy-scriptbestanden *.groovy extensie. Het “spring” commando voert HelloWorld.groovy uit en genereert output. De Spring Boot CLI-component vereist veel stappen zoals CLI-installatie, CLI-instellingen, het ontwikkelen van een eenvoudige Spring Boot-toepassing en het testen ervan. Daarom gaan we nog een bericht wijden om het uitvoerig te bespreken met enkele voorbeelden van Spring Boot. Raadpleeg alstublieft mijn volgende bericht over Spring Boot CLI.

Spring Boot Actuator

De Spring Boot Actuator-componenten bieden veel functies, maar twee belangrijke functies zijn

  • Het leveren van Management EndPoints aan Spring Boot-toepassingen.
  • Metingen van Spring Boot-toepassingen.

Wanneer we onze Spring Boot Webtoepassing uitvoeren met CLI, biedt Spring Boot Actuator automatisch de hostnaam als “localhost” en het standaard poortnummer als “8080”. We kunnen deze toepassing benaderen met behulp van het eindpunt “https://localhost:8080/”. We gebruiken eigenlijk HTTP-verzoekmethoden zoals GET en POST om Management EndPoints voor te stellen met behulp van Spring Boot Actuator. We zullen wat meer details bespreken over Spring Boot Actuator in komende berichten.

Interne werking van het Spring Boot Framework

Het is altijd aan te raden om te begrijpen hoe het Spring Boot Framework de afhankelijkheden van het buildproces vermindert, zoals Spring Configuration, enz. Hoe Spring Boot onder de motorkap werkt. Als je bekend bent met de programmeertaal Groovy, dan ken je het meeste wel. In Groovy hoeven we geen imports toe te voegen en geen afhankelijkheden aan het Groovy-project toe te voegen. Wanneer we Groovy-scripts compileren met de Groovy-compiler (groovyc), worden automatisch alle standaardimportverklaringen toegevoegd en wordt het gecompileerd. Op dezelfde manier bevat de programmeertaal Groovy een JAR Dependency Resolver om alle benodigde JAR-bestanden op te lossen en toe te voegen aan de classpath van het Groovy-project. Het Spring Boot Framework gebruikt intern Groovy om standaardinstellingen toe te voegen, zoals standaard importverklaringen, de Application main() methode, enz. Wanneer we Groovy-scripts uitvoeren vanaf de opdrachtprompt van de CLI, gebruikt het deze main() methode om de Spring Boot-applicatie uit te voeren.

Grape

Druif is een ingesloten afhankelijkheidsresolutiemotor. Druif is een JAR-afhankelijkheidsbeheerder die is ingebed in Groovy. Druif stelt ons in staat om snel maven-repository-afhankelijkheden aan ons project-classpath toe te voegen om de definitie van het buildbestand te verminderen. Het programmeermodel van het Spring Boot-framework is voornamelijk geïnspireerd op het Groovy-programmeermodel. Het Spring Boot-framework is intern afhankelijk van deze twee belangrijke componenten: Groovy en Druif. Je kunt de Druif-documentatie raadplegen voor meer informatie https://docs.groovy-lang.org/latest/html/documentation/grape.html. Dat is alles over Spring-componenten en -interne werking. We zullen deze componenten gedetailleerd bespreken met enkele voorbeelden van Spring Boot in aankomende berichten. Als je vragen hebt, laat dan een reactie achter.

Source:
https://www.digitalocean.com/community/tutorials/key-components-and-internals-of-spring-boot-framework