Spring Framework
Veel Java-teams gebruiken al Spring Boot voor het bouwen van applicaties. De integratie van Spring met webforJ stelt je nu in staat om de UI-componenten van webforJ toe te voegen aan bestaande Spring-applicaties, of om de functies van Spring te gebruiken in nieuwe webforJ-projecten.
Je Spring-diensten, repositories en configuraties werken zoals normaal. Je webforJ-componenten kunnen @Autowired elke Spring-bean. Spring Data repositories verbinden direct met webforJ-tabellen via SpringDataRepository. De ontwikkeling wordt versneld met automatische browserverversing van Spring DevTools en webforJ LiveReload.
De integratie houdt beide frameworks bezig met waar ze het beste in zijn - Spring behandelt backend-zaken terwijl webforJ de UI behandelt.
Topics
📄️ Spring Boot
Spring Boot is een populaire keuze voor het bouwen van Java-apps, en biedt dependency injection, auto-configuratie en een embedded servermodel. Bij het gebruik van Spring Boot met webforJ, kunt u services, repositories en andere door Spring beheerde beans direct in uw UI-componenten injecteren via constructorinjectie.
📄️ Routing
Routing in webforJ met Spring werkt precies hetzelfde als in gewone webforJ-applicaties. Je gebruikt nog steeds de @Route annotatie om routes te definiëren, dezelfde navigatiepatronen en dezelfde route levenscyclus. Het enige verschil is dat wanneer Spring aanwezig is, je routes ook Spring beans kunnen ontvangen via constructorinjectie.
📄️ Scopes
Spring beheert de levenscyclus van beans via scopes. Elke scope definieert wanneer een bean wordt aangemaakt, hoe lang deze leeft en wanneer deze wordt vernietigd. Naast de standaard Spring-scopes, voegt webforJ drie aangepaste scopes toe: @WebforjSessionScope, @EnvironmentScope en @RouteScope.
📄️ Spring Data JPA
Spring Data JPA is de facto standaard voor gegevens toegang in Spring-applicaties, met repository-abtracties, query-methoden en specificaties voor complexe query's. De webforJ SpringDataRepository adapter verbindt Spring Data repositories met de UI-componenten van webforJ, waardoor je JPA-entiteiten direct aan UI-componenten kunt binden, dynamische filtering met JPA-specificaties kunt implementeren en paginering kunt afhandelen.
📄️ Background Jobs
Wanneer gebruikers op een knop klikken om een rapport te genereren of gegevens te verwerken, verwachten ze dat de interface responsief blijft. Voortgangsbalken zouden moeten animeren, knoppen moeten reageren op hover, en de app mag niet vastlopen. Spring's @Async annotatie maakt dit mogelijk door langdurige operaties naar achtergrondthreads te verplaatsen.