Quick Tutorialz

Learn Fast, A few things.

New Corso Udemy in Italiano sui Microservizi!

JWT e sicurezza con Spring Boot

Le moderne applicazioni web utilizzano i Json Web Token per implementare la sicurezza e la tracciabilità delle chiamate HTTP. I Json Web Token costituiscono una tecnologia innovativa che permette, lato server, di non memorizzare il cookie di sessione, ma di controllare semplicemente la correttezza e la validità del token, di estrarne le informazioni in esso contenute, senza sovraccaricare la memoria volatile. Di seguito i link che spiegano chiaramente tale tecnologia.
Link 1
Link 2
Gihub Link
Un esempio pratico con Spring Boot:

Learn more

Bulma Framework

Un framework CSS colorato e facile da usare, che può riempire le tue pagine web di colore e dare loro un aspetto accattivante. Un CSS molto leggero e che possiamo inserire nei nostri progetti Web anche tramite link e senza dover scaricare il codice sorgente. Vi invito a dare uno sguardo alla documentazione, ai componenti grafici e di esempio e alle varie possibilità che questo framework da. A questo link potete trovare una serie di template realizzati con Bulma a titolo di esempio.

Learn more

Vue.js 2

Non si può non dare uno sguardo alla seconda versione della libreria Vue.js che, al pari di Angular e React, fornisce un modo rapido per realizzare applicazioni Web (lato front end) che rispecchino il modello architetturale MVC (Model View Controller). Caratteristiche peculiari di Vue sono la possibilità di definire componenti e template ed il databinding bidirezionale che rende le nostre applicazioni più reattive! Di seguito un videocorso su Vue.js che vi aiuterà a capire di cosa stiamo parlando.

Learn more

Spring Boot: una via preferenziale per i microservizi


Perché realizzare microservizi? Cos'è un microservizio? Perché non rimanere ancorati alla struttura classica detta monolitica e dividere le nostre applicazioni in più porzioni indipendenti, che comunicano tra di loro, scalate in maniera differente l'una dall'altra, magari realizzate secondo tecnologie e metodi diversi tra di loro? Di seguito una serie di link, articoli, video che proveranno a rispondere a queste domande e a mostrare il vantaggio di utilizzare i microservizi per costruire le proprie web applications ed in particolare il modulo Spring Boot di Spring Framework come strumento privilegiato per la realizzazione degli stessi.

Microservizio vs applicazione monolitica

Le moderne applicazioni sono oramai progettate a microservizi, architetture che prendono il posto delle classiche applicazioni monolitiche. Di sequito un link che spiega molto sinteticamente la differenza tra l'applicazione monolitica ed il microservizio.

Vai al video

War e "Fat Jar"

Una trattazione tra i due formati: quello classico della web application che richiede un application container o un servlet container ed il secondo che contiene un Http Listener che si mette in ascolto di una porta specifica (definita nelle properties del microservizio), evitando l'installazione di un server apposito come potrebbe essere Tomcat, Jetty, JBoss, WebSphere, GlassFish, ecc.

Vai al video

Validators

in tutte le salse

La validazione dei dati di input di una web application costituisce un aspetto importante e che va configurato ad hoc a seconda delle esigenze della nostra web application. Di seguito un file che mostra alcuni esempi di validazione: la validazione JSR-303 di Java attraverso le annotazioni, con e senza BindingResult, un oggetto di Spring Framework, la validazione di Spring utilizzando lo Spring Validator ed il BindingResult.

Vai alla risorsa

Hibernate e JPA

Cronostoria dei metodi di configurazione

Il layer di persistenza da sempre costituisce un punto focale per una web application. Sappiamo come Hibernate e gli altri sistemi di ORM (Object Relational Mapping) abbiano fornito uno strato intermedio che rende le transazioni verso il database simili all'approccio a oggetti, tipico di Java. Di seguito un'articolo che tratta in maniera abbastanza approfondita come la configurazione di questi sistemi sia variata nel tempo ed abbia eliminato molte delle complicazioni in uso, snellendo via via il codice e permettendo al programmatore di concentrarsi meno sulle configurazioni e maggiormente sul codice.

Vai all'articolo

Spring Jpa strategies

@Query e la "name strategy"

Interessante fare un confronto su come vengono definiti i metodi delle interfacce DAO di Spring che andranno a recuperare, salvare, modificare i dati nel database associato. Di seguito due link che pongono il confronto tra due strategie possibili:

@Query annotation

Name strategy

Project Lombok

Per realizzare i POJO


Il progetto Lombok rappresenta una libreria interessante del mondo Java che permette di realizzare agilmente i tuoi POJO (Plain Old Java Object). Una libreria integrabile con Maven o Gradle che permette di generare automaticamente costruttori, getter e setter method delle tue classi, grazie a delle semplici annotazioni che evitano la scrittura di gran parte del codice! Il progetto Lombok, tramite le sue annotazioni, permette anche di definire dei logger customizzati per le proprie esigenze, oppure di generare l'Override del metodo toString() in modo rapido. Esistono alcune feature stabili ed altre ancora in fase sperimentale. Tuttavia si tratta di un progetto interessante ed in via di evoluzione. Spring Boot ne permette l'integrazione rapida attraverso Spring Initializr.

Vai al sito

Jackson Library

Da Json ad Object e viceversa

Jackson Library viene automaticamente importata con Spring web MVC (e quindi anche con Spring Boot web) e permette la traduzione automatica di oggetti Java in messaggi Json e viceversa, in modo del tutto invisibile a chi programma. Se utilizzata al di fuori del contesto Spring, tuttavia, i suoi metodi devono essere richiamati esplicitamente. Di seguito un tutorial in cui si mostra questo utilizzo esplicito di Jackson Library.

Vai al tutorial

Spring Boot Tutorials

concentrato di risorse

Spring Boot nasce come modulo di Spring, ma permette la creazione di applicazioni Java-Spring che utilizzino tutti i moduli di Spring Framework.

Grazie all'utilizzo massivo dell'autoconfigurazione, molte delle procedure di configurazione manuale del framework di Spring possono essere evitate, pur mantenendo la possibilità di personalizzare tutti gli aspetti oggetto di tale autoconfigurazione.

Spring Boot utilizza vari strumenti per la creazione di nuove applicazioni pre-costruendone la struttura a seconda delle esigenze, inserendo automaticamente le dipendenze necessarie, anche tramite i cosiddetti "starter pom" ovvero degli agglomerati di dipendenze Maven che rendono maggiormente facile l'implementazione delle web application. Oltre agli "starter pom", normalmente un projetto realizzato in Spring Boot contiene un progetto "parent", un modello da cui importare tutte le dipendenze.

Quello che rende particolare Spring Boot è la possibilità di implementare delle web application senza la classica struttura (cartella webapp, deployment descriptor o web.xml), ma utilizzando il metodo statico main() tipico delle applicazioni Java standard. Avviando l'applicazione con il main(), assieme ad essa viene istanziato ed avviato un http listener, ovvero un server embedded che effettua automaticamente il deploy della stessa applicazione, sulla porta su cui esso è configurato.

Spring Boot è sicuramente un metodo innovativo per realizzare le applicazioni Spring e che sta modificando l'approccio dei programmatori. Esso merita, pertanto, un adeguato approfondimento.

Vai al sito

"Old Style" web apps vs "New Style"

JSP, JSF oppure approccio REST?

L'orientamento precedente a quello attuale era di elaborare la pagina visualizzata lato back-end generando HTML da file JSP, JSF o Thymeleaf. Ora, in molte applicazioni, si preferisce l'approccio REST e le chiamate AJAX. Di seguito un tutorial che ne spiega le peculiarità.

Vai al tutorial

Microservizi in Netflix

Una rapida lezione da un'azienda innovativa

Netflix ci da una dritta riguardo ai microservizi e a come la loro implementazione abbia rivoluzionato il modo di lavorare di tutta l'azienda. Il know-how di Netflix ci viene in aiuto per comprendere meglio l'architettura a microservizi e le implicazioni pratiche che ne derivano.

Vai al link