Parlerò di un campo della tecnologia delle informazioni che è circoscritto alla creazione e mantenimento delle applicazioni web.
Una applicazione web è formata da web servers ai quali si connettono i web client, spesso browsers a volte app di altro genere, comunque mediando le due tipologie (client+server) con un protocollo di comunicazione in rete chiamato HTTP.
Dando per buono che Java sia una buona scelta, cosa si può usare per costruire un webserver in Java? “Spring.io” è un sito che fornisce principalmente questo, anche se si è evoluto temporalmente.
Java lo si può apprendere da “SoloLearn.com”, come linguaggio, mentre Spring è un uso di tale linguaggio.
Per iniziare un uso di Spring in Java o JVM ho usato:
Le “dependencies” sono parti da cui dipenderà la nuova webapp, perchè le userà, prevedibilmente. Fatto questo si scarica il “progetto” (nel senso di app in lavorazione) e lo si modifica ad esempio con Visual Studio Code, uno dei “https://spring.io/tools”:
https://marketplace.visualstudio.com/items?itemName=Pivotal.vscode-boot-dev-pack
E’ una app che usa un datasource, che va configurato come sorgente dei dati (datasource: gestione dei dati immagazzinati). Io in questo file “application.properties” uso Postgres ma avevo già bazzicato con una configurazione equivalente con MySQL (entrambi tipi di database software).
https://github.com/arkenidar/spring-demo1/blob/master/src/main/resources/application.properties
Fatto ciò l’app parte senza errori, ma non fa nulla, nè può fare nulla in questa condizione iniziale embrionale.
Ho quindi aggiunto delle classi controller MVC (già sperimentate e studiate tempo fa) che avevo scelto come piccoli esempi e prove in piccola, minuscola scala.
https://github.com/arkenidar/spring-demo1/tree/master/src/main/java/com/example/demo/controllers
Fatte queste modifiche (che nel mio caso fanno riavviare automaticamente il server, in modo che le metta in atto) posso quindi accedere agli indirizzi http del server http locale, in ascolto sulla porta 8080 (http://localhost:8080/fm).
“Fm” come FreeMarker un sistema di templating, di cui ho fatto un minimo iniziale uso.
Faccio anche uso di meccanismi di sessione http, e di JDBC un sistema per i DB (database).
Su Udemy ci sono video corsi estesi, ma per me molto pesanti da seguire, ho trovato un varco in questa jungla con tentativi più auto-diretti che passivamente imboccati (anche perchè conoscevo già PHP con e senza frameworks MVC).