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 afhankelijkheidsinjectie, auto-configuratie en een embedded servermodel. Wanneer je Spring Boot gebruikt met webforJ, kun je services, repositories en andere door Spring beheerde beans rechtstreeks injecteren in je UI-componenten via constructorinjectie.
📄️ Routing
Routing in webforJ met Spring werkt precies hetzelfde als in gewone webforJ-toepassingen. Je gebruikt nog steeds de @Route annotatie om routes te definiëren, dezelfde navigatiepatronen en dezelfde routelevenscyclus. 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 gegevensaccess in Spring-toepassingen, en biedt repository-abstraheringen, query-methoden en specificaties voor complexe queries. De webforJ SpringDataRepository adapter overbrugt Spring Data repositories met de UI-componenten van webforJ, waardoor je JPA-entiteiten rechtstreeks kunt koppelen aan UI-componenten, dynamische filtering kunt implementeren met JPA-specificaties 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 moeten animaties hebben, knoppen moeten reageren op hover, en de app mag niet bevriezen. Spring's @Async annotatie maakt dit mogelijk door langdurige processen naar achtergrondthreads te verplaatsen.