Module 8: Spring Boot Flashcards
Wat is Spring Boot?
Spring Boot is een framework dat is gemaakt om een Spring applicatie op te zetten en werkend te krijgen met minimale configuratie.
In Spring Boot zit standaard ondersteuning voor SQL en NoSQL databases en levert het geintegreerde runtimes mee zoals Tomcat en Jetty.
Wat zijn de doelen van Spring Boot?
- Toegankelijk en snel
- Standaardinstellingen
- Niet-functionele features
- Geen codegeneratie of XML-configuratie nodig
Wat zijn de concepten van Spring Boot die verschillen van Spring?
- Starters
- Embedded servers
- Starter parent
- Auto configuratie: Spring Boot doet een hoop van de configuraties die bij een hoop Spring projecten elke keer gedaan moeten worden uit zichzelf. Hiervoor worden standaarden gebruikt die je kan overriden in de properties of door zelf beans aan te maken.
Welke spring boot starters zijn er?
- spring-boot-starter-web
- spring-boot-starter-jersey
- spring-boot-starter-log4j2
- spring-boot-starter-activemq
- spring-boot-starter-jpa
- spring-boot-starter-security
- spring-boot-starter-test
De embedded server starters zijn:
- spring-boot-starter-tomcat
- spring-boot-starter-jetty
- spring-boot-starter-undertow
Wat is de autoconfiguratie feature van Spring Boot?
Bij Spring Boot is het makkelijk om snel een nieuwe applicatie werkend te hebben door de auto-configuratie. Zoals te zien in de vorige modules had elk component wel een bean nodig of andere configuratie. In Spring Boot worden een hoop van deze standaard configuraties automatisch uitgevoerd. Deze standaarden zijn te overschrijven met de properties of YAML-bestanden.
Voorbeelden:
Bij de webstarter wordt er automatisch een dispatcherservlet opgezet, er wordt een default error pagina gecreëerd.
Bij de JPA-starter worden er automatisch een datasource bean en entitymanager ingesteld.
Wat doet de Spring Boot annotatie @EnableConfigurationProperties en wat is het voordeel hiervan?
Deze annotatie biedt een manier om properties bestanden te vertalen naar POJO’s.
Wat er handig is aan deze manier is dat er bijvoorbeeld in de code validatieregels kunnen worden toegepast op de properties.
Wat doet de Spring Boot plugin?
Uber-jar
Normaal gesproken bij het maken van een jar bestand wordt alleen de eigen code in de jar verpakt. Bij deployment is het daarom nodig om zelf nog alle dependency jars toe te voegen aan de folder. Bij deze uber jar worden de dependencies meeverpakt waardoor je een bestand kan deployen die werkt.
Runnable class Om zo'n jar te kunnen uitvoeren moet er ook bekend zijn wat de entry point is. Spring zorgt ervoor dat de public static void main wordt gemarkeerd als entry point.
Dependency resolver
De dependency resolver zorgt ervoor dat de versies van de verschillende dependencies goed samenwerken.
Wat zijn de voordelen van Spring data ten opzichte van handmatig gebruik van JPA?
Het gebruik van Spring Data reduceert een hoop boilerplate code die benodigd was bij elke repository. De standaard acties zoals opzoeken d.m.v. de primary key, ophalen van alle records, updaten en deleten zijn allemaal verwerkt in een generic class.
Bij Spring Data is het alleen nodig om de dependency toe te voegen en vervolgens doet de autoconfiguratie al de rest voor integratie.
Ten slotte is het met Spring Data mogelijk om dynamisch query’s te schrijven.
Welke typen repositories kunnen gebruikt worden met Spring Data?
- CrudRepository
- PagingAndSortingRepository
- JpaRepository
Welke type repository kan het best gebruikt worden bij een nieuw project?
Bij het beginnen met een nieuw project is het altijd het beste om te beginnen met een CrudRepository en pas te upgraden als de functionaliteiten benodigd zijn.
Wat is Dynamic Query Derivation?
Met het gebruik van keywords kunnen dynamisch query’s worden opgesteld.
Een voorbeeld hiervan is de find … by. Spring filtert deze bekende keywords er uit en parsed de query die daaruit overblijft. Daardoor is het mogelijk om zoals in het voorbeeld woorden te gebruiken die niet bekend zijn als findPeopleBy. Daarbij kunnen nog wel keywords als Distinct gebruikt worden, maar de echte filtercriteria komen pas na de eerste By.
Wat is Query By Example?
Soms is het nodig om een query uit te voeren met filters die je een andere keer niet gebruikt. Hiervoor is Query By Example een goede keuze. De naam zegt het al, je geeft een voorbeeld mee van het object waar je naar zoekt. Hier kan je met matchers nog filters op uitbreiden.
Wat zijn Specifications (Spring Data queries)?
Een alternatieve manier voor het bouwen van filters.
Hierbij is het nodig om een klasse aan te maken waarin methodes staan die een Specification teruggeven. Met behulp van de criteriabuilder kan er binnen de methode een filter worden ingesteld. Het resultaat hiervan is dat je, bij gebruik van goede methodebenamingen, een query krijgt die leesbaar is.
Wat is de @Query annotatie?
Met de @Query annotatie kunnen we gebruikmaken van JPQL of een native query.
voorbeeld: @Query(value = “FROM User u WHERE name = :name”)
Waar bestaat een JWT uit?
- header
- payload
- signature