Migliorare la mia esperienza con Spring Boot 2

di il
30 risposte

Migliorare la mia esperienza con Spring Boot 2

Ho poco tempo da dedicare a Spring Boot 2 e quando mi ci metto non riesco a combinare molto.
Cercando ho trovato questi 2 script:
https://github.com/davioooh/creare-applicazioni-web-spring-boot-esempi
che analizzandoli nel dettaglio mi hanno fatto capire qualcosina di più di questo framework.
Ora per proseguire i miei studi cosa mi consigliate di fare?
Prendere un PDF in inglese relativo a qualche libro su Spring Boot 2 ed usare Google Translate per capire cosa dice può essere una soluzione?
Altri consigli?
Qui c'è qualcosina:

Si tratterebbe solo di capire quale testo scegliere.
Questo è composto da 300 pagine circa:
https://www.apress.com/it/book/978148422930
e sembra esserci qualcosa che mi interessa. Ecco l'indice:
Chapter 1: Introduction to Spring Boot ... 1
Chapter 2: Getting Started with Spring Boot ... 21
Chapter 3: Spring Boot Autoconfiguration ... 35
Chapter 4: Spring Boot Essentials ... 47
Chapter 5: Working with JdbcTemplate ... 55
Chapter 6: Working with MyBatis ... 65
Chapter 7: Working with JOOQ ... 71
Chapter 8: Working with JPA ... 83
Chapter 9: Working with MongoDB ... 99
Chapter 10: Web Applications with Spring Boot ... 107
Chapter 11: Building REST APIs Using Spring Boot ... 133
Chapter 12: Reactive Programming Using Spring WebFlux ... 157
Chapter 13: Securing Web Applications ... 175
Chapter 14: Spring Boot Actuator ... 197
Chapter 15: Testing Spring Boot Applications ... 221
Chapter 16: Creating a Custom Spring Boot Starter ... 247
Chapter 17: Spring Boot with Groovy, Scala, and Kotlin ... 259
Chapter 18: Introducing JHipster ... 279
Chapter 19: Deploying Spring Boot Applications ... 289

Grazie

30 Risposte

  • Re: Migliorare la mia esperienza con Spring Boot 2

    Poco tempo -> poco studio -> poca comprensione -> perdita di tempo -> passare ad altro

    Al momento, a quanto ci e' dato sapere

    1) la conoscenza non si acquisice mediante iniezione per endovena
    2) la trasmissione del pensiero non funziona, quindi la vicinanza di qualcuno con la conoscenza non funziona. Se poi questo qualcuno si trova dall'altra parte del monitor, funziona ancora di meno
    3) google non fa endovene ne trasmette nel pensiero
    4) conoscenza ""complessa"" non si puo' convertire in ""conoscenza semplice"" in modo ""semplice""
    5) vabbe che i programmatori saranno una ""casta"", ma nemmeno a loro va tanto a genio dover diventare matti su concetti semplici presentati in modo complesso! SE i concetti sembrano complessi e' perche' ""SONO"" complessi!!!
    6) l'informatica ""evoluta"" e' in inglese
    7) google translate non fa miracoli
    8 ) il libro che costa di meno e' sempre la prima scelta
    9) non comprare il libro, e' una scelta migliore
    10) passare ad altro e' ""ancora piu' meglio/meglissimo""
  • Re: Migliorare la mia esperienza con Spring Boot 2

    giannino1995 ha scritto:


    Ho poco tempo da dedicare a Spring Boot 2 e quando mi ci metto non riesco a combinare molto.
    C'è però una questione di fondo. Tu ti stai orientando su Spring Boot ma forse dovresti prima vedere meglio Spring Framework.
    Spring Boot non è una cosa molto diversa da Spring Framework. Spring Boot È Spring Framework. Semplicemente Spring Boot è solo un "cappello" in più che aggiunge una serie di autoconfigurazioni, defaults, convenzioni varie, per poter iniziare e procedere in maniera più semplice e spedita.

    Prendi per esempio il controller che hai riportato nell'altra tua discussione HttpStatus.NOT_FOUND in ModelAndView
    In quel sorgente, di Spring Boot non c'è nulla!! Sono tutte cose e concetti di Spring Framework puro. Si vede anche l'uso della Validation API (quel @Valid) e al fondo si vede l'uso di un Optional (di Java 8 ).

    Quindi, mia ipotesi: molto probabilmente hai snobbato/ignorato Spring Framework pensando che fosse poco utile/interessante e invece adesso ti ritrovi di colpo a "scalare" una montagna tipo l'Everest.

    giannino1995 ha scritto:


    Prendere un PDF in inglese relativo a qualche libro su Spring Boot 2 ed usare Google Translate per capire cosa dice può essere una soluzione?
    Google Translate NON è la soluzione. La vera soluzione sarebbe imparare a leggere discretamente almeno l'inglese "tecnico", quello che si trova appunto nei testi in ambito tecnico/scientifico.

    giannino1995 ha scritto:


    https://www.apress.com/it/book/978148422930
    e sembra esserci qualcosa che mi interessa.
    Questo ce l'ho, è valido/utile ma non l'ho letto tutto tutto. Mi è servito almeno per farmi una buona idea sulla auto-configuration, sui Conditional e su alcune altre cose.
  • Re: Migliorare la mia esperienza con Spring Boot 2

    migliorabile ha scritto:


    Poco tempo -> poco studio -> poca comprensione -> perdita di tempo -> passare ad altro

    Al momento, a quanto ci e' dato sapere

    1) la conoscenza non si acquisice mediante iniezione per endovena
    2) la trasmissione del pensiero non funziona, quindi la vicinanza di qualcuno con la conoscenza non funziona. Se poi questo qualcuno si trova dall'altra parte del monitor, funziona ancora di meno
    3) google non fa endovene ne trasmette nel pensiero
    4) conoscenza ""complessa"" non si puo' convertire in ""conoscenza semplice"" in modo ""semplice""
    5) vabbe che i programmatori saranno una ""casta"", ma nemmeno a loro va tanto a genio dover diventare matti su concetti semplici presentati in modo complesso! SE i concetti sembrano complessi e' perche' ""SONO"" complessi!!!
    6) l'informatica ""evoluta"" e' in inglese
    7) google translate non fa miracoli
    8 ) il libro che costa di meno e' sempre la prima scelta
    9) non comprare il libro, e' una scelta migliore
    10) passare ad altro e' ""ancora piu' meglio/meglissimo""
    Grazie sei incoraggiante!
  • Re: Migliorare la mia esperienza con Spring Boot 2

    andbin ha scritto:


    giannino1995 ha scritto:


    Ho poco tempo da dedicare a Spring Boot 2 e quando mi ci metto non riesco a combinare molto.
    C'è però una questione di fondo. Tu ti stai orientando su Spring Boot ma forse dovresti prima vedere meglio Spring Framework.
    Spring Boot non è una cosa molto diversa da Spring Framework. Spring Boot È Spring Framework. Semplicemente Spring Boot è solo un "cappello" in più che aggiunge una serie di autoconfigurazioni, defaults, convenzioni varie, per poter iniziare e procedere in maniera più semplice e spedita.

    Prendi per esempio il controller che hai riportato nell'altra tua discussione HttpStatus.NOT_FOUND in ModelAndView
    In quel sorgente, di Spring Boot non c'è nulla!! Sono tutte cose e concetti di Spring Framework puro. Si vede anche l'uso della Validation API (quel @Valid) e al fondo si vede l'uso di un Optional (di Java 8 ).

    Quindi, mia ipotesi: molto probabilmente hai snobbato/ignorato Spring Framework pensando che fosse poco utile/interessante e invece adesso ti ritrovi di colpo a "scalare" una montagna tipo l'Everest.

    giannino1995 ha scritto:


    Prendere un PDF in inglese relativo a qualche libro su Spring Boot 2 ed usare Google Translate per capire cosa dice può essere una soluzione?
    Google Translate NON è la soluzione. La vera soluzione sarebbe imparare a leggere discretamente almeno l'inglese "tecnico", quello che si trova appunto nei testi in ambito tecnico/scientifico.

    giannino1995 ha scritto:


    https://www.apress.com/it/book/978148422930
    e sembra esserci qualcosa che mi interessa.
    Questo ce l'ho, è valido/utile ma non l'ho letto tutto tutto. Mi è servito almeno per farmi una buona idea sulla auto-configuration, sui Conditional e su alcune altre cose.
    Al di la degli strumenti che usa quel programmatore (Option<T>, Validation API, ecc...) di cui ti ho parlato, la webapp è chiara ed espone un caso reale (la login). Non mi piace però il modo che utilizza per salvare i dati nel database perché non usa un ORM (credo si dica così).
    Il testo che ho postato ha 19 capitoli e 19 script. La domanda che ti vorrei fare è questa: gli script che propone l'autore sono simili a quelli che ho trovato io su google ovvero presentano mini-progetti realistici di webapp riutilizzabili in altri contesti? In pratica a me serve un libro che oltre ad affrontare la teoria presenti un caso reale. Per esempio il miglior libro che ho letto e che mi è piaciuto moltissimo è stato questo:
    https://www.amazon.it/Sviluppare-applicazioni-MySQL-Kevin-Yank/dp/8850331827
    perché nel libro l'autore affrontava una sola webapp (un software per la raccolta di barzellette se non erro) che poteva essere opportunamente riadattata per trasformarla in un blog o in un e-commerce. In pratica è un libro che descrive una specie di CMS fatto in PHP. Io cerco una cosa simile ma per il Java per intenderci e che usi JPA, Spring Boot 2, non altre cose, in modo da non dover dipendere da uno specifico database.
    Tra il resto è uscita la versione nuova:
    https://www.amazon.it/Sviluppare-applicazioni-MySQL-imparare-programmazione/dp/885033415X
    ed è pure in italiano ma non c'entra nulla con il mio discorso.
    Potrei anche iniziare a prendere un testo di Spring Framework se è questo che mi consigli ma sono tutti testi vecchi, io preferisco Spring Boot 2. Inoltre i libri di Spring Framework hanno lo stesso numero di pagine di Spring Boot 2. A me Spring Framework non interessa come non interessano molte cose che trovo in questo testo:
    https://www.apress.com/it/book/978148422930
    ovvero queste:
    Chapter 6: Working with MyBatis ... 65
    Chapter 7: Working with JOOQ ... 71
    Chapter 12: Reactive Programming Using Spring WebFlux ... 157
    Chapter 14: Spring Boot Actuator ... 197
    Chapter 17: Spring Boot with Groovy, Scala, and Kotlin ... 259
    Chapter 18: Introducing JHipster ... 279

    Non ho mai sentito parlare di MyBatis, JOOQ, WebFlux, Actuator, Kotlin, JHipster, di tutta questa roba non me ne può fregar di meno al momento. Scala me ne hai parlato tu una volta e ti dico già che assolutamente non mi interessa. Detto in altro modo a me di questo libro ci saranno un 50% di cose che mi interessano. Io voglio imparare a fare siti REST dinamici con Spring Boot 2 e JPA. Stop! Ho anche letto qualcosa di MongoDB ma al momento posso anche tralasciarlo. Altra cosa che invece non c'era nel corso che avevo seguito ma che a mio avviso è importante è Spring Security che se non ho capito male permette di fare delle login più sicure per le proprie WebApp ma questi sono dettagli, al momento Spring Boot 2 e JPA per le cose che voglio fare io sono sufficienti. Forse il top sarebbe una WebApp in Spring Boot 2 e JPA che spieghi come realizzare un Blog in cui gli utenti possono registrarsi e dare un feedback alle notizie. In pratica a me interessano pochi strumenti ma capiti bene e soprattutto moderni.
  • Re: Migliorare la mia esperienza con Spring Boot 2

    giannino1995 ha scritto:


    Non mi piace però il modo che utilizza per salvare i dati nel database perché non usa un ORM (credo si dica così).
    Non saprei dire (non ho visto) in questo momento cosa/come fa in quel progetto per l'accesso al DB. Ma sappi che .... per l'accesso ad una base dati, detto in generale, ci sono una MAREA di possibilità ed approcci differenti! Si tratta quindi solo di scelte ...

    giannino1995 ha scritto:


    Inoltre i libri di Spring Framework hanno lo stesso numero di pagine di Spring Boot 2.
    NON vuol dire nulla. E anzi ... non credo, dipende. Il famoso "Spring in Action, Fourth Edition" (per Spring Framework 4.x) ha 624 pagine. La Fifth Edition ne ha "solo" 520 di pagine. Ti sembrano poche o tante?

    giannino1995 ha scritto:


    A me Spring Framework non interessa
    Ecco ... questo, lasciamelo dire, è il tuo GROSSO errore. Forse non l'hai ancora capito ma te lo rispiego. Spring Boot è solo un sottile strato al di sopra di Spring Framework. Aiuta in molte cose: nella configurazione della applicazione, nella gestione dei profili applicativi, nell'avvio della applicazione (infatti parte con il classico main() ... ) e altre cose. Ma una volta impostate le dipendenze, le properties, il logging, ecc.. questa parte di Spring Boot è "abbastanza trasparente" per lo sviluppatore. La si può in un certo senso "dimenticare".

    Invece tutto quello che sta "sotto" è Spring Framework!!! Quello che scrivi in un controller come annotation, concetti, tipi (es. il ModelAndView) e struttura è Spring Framework! Le annotation e i concetti che usi nei "service" e nei "dao" è .... Spring Framework !!

    Ti faccio alcune domande su Spring Framework, giusto per vedere/verificare.

    - sai quale è la differenza tra lo scope "singleton" e "prototype"?

    - sai quale è la differenza tra BeanFactory e FactoryBean? No, non è un gioco di parole ... sono due tipi (due interfacce) realmente esistenti in Spring Framework. Ma di concetto radicalmente differente.

    - sai quale è la differenza tra BeanFactory e ApplicationContext?

    - con Spring si usa comunemente @Autowired ma si può anche usare @Inject (che è "presa in prestito" da Java Enterprise, dal JSR-330 "Dependency Injection for Java"). Sai quali sono le differenze tra @Autowired e @Inject?

    - se hai una interface Java e poi N bean Spring che implementano quella interface, come fai es. in un Service ad "iniettare" TUTTI quei bean senza doverli conoscere a priori come numero/tipo specifico? (potresti forse arrivarci ...) E a cosa potrebbe servire, secondo te, una cosa del genere? (io questa tecnica l'ho già usata con successo in diversi progetti di lavoro).

    Queste cose che ho chiesto sono tutte di Spring Framework. Non c'è nulla di Spring Boot! Un libro su Spring Boot, molto (molto) probabilmente queste cose NON te le spiega (ma sono importanti!) o magari te le descrive in maniera approssimativa/breve rimandandoti poi ad un altro libro o risorsa specifica su Spring Framework.

    -----
    Comunque per concludere: vuoi continuare ad ignorare Spring Framework? Fai pure ... prendi pure dei libri solo su Spring Boot 2, magari fai dei bei copia-incolla dei pezzi di codice dai libri (probabilmente senza capirci molto) e ...... vediamo un po' fino a dove/quanto riesci ad andare avanti ......
  • Re: Migliorare la mia esperienza con Spring Boot 2

    Quindi tu mi consigli di leggere prima questo:
    https://www.apress.com/it/book/9781430265320#otherversion=9781430265337
    e poi questo:
    https://www.apress.com/it/book/9781484229309#otherversion=9781484229316
    ?
    Di tutte le domande che fai non so rispondere a nemmeno una.
    Possibile che non ci sia un modo più veloce… mi sembra assurdo… all’università in 60 ore (sono andato a curiosare) imparano a programmare in Spring Boot 2, JPA, ecc… tutto quanto…
    Va bene che sono ottuso e non so l’inglese ma mi sembra assurdo, non sono convinto che questo linguaggio abbia un futuro…
  • Re: Migliorare la mia esperienza con Spring Boot 2

    giannino1995 ha scritto:


    Quindi tu mi consigli di leggere prima questo:
    https://www.apress.com/it/book/9781430265320#otherversion=9781430265337
    ?
    Considera però bene le versioni: Spring Boot 2.x si basa su Spring Framework 5.x (ho fatto una bella tabella delle versioni sul mio blog qui: Tabella delle versioni delle dipendenze in Spring Boot).

    Quindi se vuoi una introduzione su Spring Framework, potrebbe esserti più utile per la 5.x piuttosto che la 4.x (che è comunque una buona base lo stesso).
    Ad esempio questo (non ce l'ho e non lo conosco direttamente):

    giannino1995 ha scritto:


    Di tutte le domande che fai non so rispondere a nemmeno una.
    Qualcosa me lo aveva fatto immaginare ....

    giannino1995 ha scritto:


    all’università in 60 ore (sono andato a curiosare) imparano a programmare in Spring Boot 2, JPA, ecc… tutto quanto…
    Ehhhh?

    giannino1995 ha scritto:


    e non so l’inglese
    Ecco, questo è un altro aspetto che dovresti migliorare. Il problema non è solo per i libri ... ma anche per tutta la documentazione tecnica ufficiale, come ad esempio la ben nota documentazione "javadoc".
    Quanto hai già letto (e quanto capito) ad esempio del javadoc del framework standard? Questo per intenderci: https://docs.oracle.com/en/java/javase/14/docs/api

    giannino1995 ha scritto:


    non sono convinto che questo linguaggio abbia un futuro…
    ....
  • Re: Migliorare la mia esperienza con Spring Boot 2

    Poco vicino da dove abiti tu:
    https://didattica.polito.it/pls/portal30/sviluppo.guide.visualizza?p_cod_ins=02JGROV&p_a_acc=2012
    Non sono praticissimo ma il corso che vedi sopra basta ed avanza per imparare a fare tutto. Un amico mi ha detto che sono solo 60 ore di lezione. Questo per rispondere alla tua perplessità (tra il resto c'è anche la parte di Ajax che voglio imparare dopo aver studiato Spring).

    Quindi tu mi consigli:
    https://www.apress.com/it/book/9781484244852#otherversion=9781484244869
    https://www.apress.com/it/book/9781484229309#otherversion=9781484229316
    ?

    Se facessi una cosa così? (è una domanda non mi fucilare...)
    https://www.html.it/guide/guida-java-spring
    https://www.apress.com/it/book/9781484229309#otherversion=9781484229316

    Sulle dispense che avevo letto si diceva che Spring Boot è nato per semplificare Spring Framework ma se per usare Spring Boot devo prima studiare Spring Framework che significato ha?!?! Detto in altro modo quali sono i vantaggi nell'utilizzo di Spring Boot?!?! Ma poi scusa la domanda ma che senso ha portare avanti tutti questi Framework che fanno la stessa cosa!?!?!

    TI PREGO, spiegami la differenza tra questi concetti perché non ci capisco più una pera:
    1) Spring Boot
    2) Spring Batch
    3) Spring Framework
    4) Spring Security
    5) Spring MVC
    6) RestSpring

    Vedendo il testo che mi consigli che è anche più recente perché del 2019 sembra di vedere un libro di teoria più che di pratica. Secondo me leggendo quel testo non si impara a fare nulla, neppure una semplice webapp come ho già fatto in passato usando delle semplici servlet e che ho portato a termine SOLO ed ESCLUSIVAMENTE grazie al tuo aiuto. Vedo che nel testo che mi hai consigliato si parla anche di Spring Boot, che caos...
  • Re: Migliorare la mia esperienza con Spring Boot 2

    giannino1995 ha scritto:


    Non sono praticissimo ma il corso che vedi sopra basta ed avanza per imparare a fare tutto.
    Non posso certo discutere su quel corso indicato perché non conosco il contesto. Ma probabilmente daranno soltanto una "infarinatura" di tutte quelle cose e presumibilmente anche "sorvolando" molto su parecchie cose. Gli EJB3, da soli, se li vuoi imparare davvero bene servono mesi di studio .. e su ottimi libri.

    giannino1995 ha scritto:


    https://www.apress.com/it/book/9781484244852#otherversion=9781484244869
    Sì, questo lo potresti prendere in considerazione (sebbene, ripeto, non lo conosco)

    giannino1995 ha scritto:


    Se facessi una cosa così? (è una domanda non mi fucilare...)
    https://www.html.it/guide/guida-java-spring
    Non l'ho letto in dettaglio ma ... probabilmente è sicuramente molto meno che un buon libro. Intendo come "copertura" degli argomenti, non voglio/posso dire sulla qualità.

    giannino1995 ha scritto:


    Sulle dispense che avevo letto si diceva che Spring Boot è nato per semplificare Spring Framework ma se per usare Spring Boot devo prima studiare Spring Framework che significato ha?!?!
    Il significato ce l'ha!! Certo che "semplifica". Ma NON vuol dire che "butta via" Spring Framework! Lo ripeto (!) ancora una volta: "sotto" Spring Boot c'è Spring Framework.

    Quel controller che hai riportato nell'altra discussione, lo puoi usare UGUALE in una applicazione con Spring Boot o in una applicazione con solo Spring Framework puro. NON sono lì le differenze!

    giannino1995 ha scritto:


    Detto in altro modo quali sono i vantaggi nell'utilizzo di Spring Boot?!?
    A semplificare lo sviluppo di applicazioni CON Spring Framework.

    Con Spring Boot hai gia di serie:
    - un server "embedded" (es. Tomcat ma si può usare Jetty/Undertow). Con Spring Framework devi fare un altro tipo di applicazione (war) e gestire tu il deploy nel server.
    - una gestione predefinita della configurazione, basta mettere un application.properties con dentro le configurazioni. Con Spring Framework è meno immediato e ci sono varie opzioni da scegliere "a mano".
    - hai già il logging praticamente "quasi" completamente configurato. Con Spring Framework devi truschinare di più.
    ecc..

    QUESTE sono le (alcune) differenze.

    giannino1995 ha scritto:


    ! Ma poi scusa la domanda ma che senso ha portare avanti tutti questi Framework che fanno la stessa cosa!?!?!

    TI PREGO, spiegami la differenza tra questi concetti perché non ci capisco più una pera:
    1) Spring Boot
    2) Spring Batch
    3) Spring Framework
    4) Spring Security
    5) Spring MVC
    6) RestSpring
    No, non fatto tutti "la stessa cosa". Sono cose ben diverse. Scusa ma data l'ora non ho modo adesso di approfondire.
    Però essendo tutti della famiglia Spring, ovviamente hanno la base comune. Si basano tutti sui concetti basilari di Spring: il container dei bean, il wiring/autowiring dei bean, gli scope, ecc...

    giannino1995 ha scritto:


    Vedendo il testo che mi consigli che è anche più recente perché del 2019 sembra di vedere un libro di teoria più che di pratica. Secondo me leggendo quel testo non si impara a fare nulla, neppure una semplice webapp come ho già fatto in passato usando delle semplici servlet e che ho portato a termine SOLO ed ESCLUSIVAMENTE grazie al tuo aiuto. Vedo che nel testo che mi hai consigliato si parla anche di Spring Boot, che caos...
    Domani verifico meglio quel testo ...
  • Re: Migliorare la mia esperienza con Spring Boot 2

    Ok dai ho capito che Spring Boot prima di altri 6 anni di programmazione JAVA me lo posso scordare, me ne faccio una ragione.

    L'ultima cosa che ti chiedo e di verificare se quel testo può essere un aiuto per il mio scopo futuro (Spring Boot 2 + JPA + Ajax). Per scopo futuro intendo dire prima che sia morto... e spero di vivere ancora molti decenni... a questo punto più che amarezza e desolazione non ho...

    Comunque sono sicuro di una cosa, quando sarò arrivato a destinazione Spring Boot 2 + JPA + Ajax sarà roba vecchia...



    P.S.: Giusto per la cronaca:
    https://didattica.polito.it/pls/portal30/esami.superi.grafico?p_docente=&p_cod_ins=02JGROV&p_a_acc=2020
    non sembra una materia semplice neppure per i cervelloni di ingegneria informatica e neppure molto amata...
  • Re: Migliorare la mia esperienza con Spring Boot 2

    giannino1995 ha scritto:


    Ok dai ho capito che Spring Boot prima di altri 6 anni di programmazione JAVA me lo posso scordare, me ne faccio una ragione.

    L'ultima cosa che ti chiedo e di verificare se quel testo può essere un aiuto per il mio scopo futuro (Spring Boot 2 + JPA + Ajax). Per scopo futuro intendo dire prima che sia morto...
    Guarda, non mi pare proprio il caso di buttarla sul drammatico ("prima che sia morto"). Se vuoi imparare le cose, puoi sicuramente farlo ma c'è da "impegnarsi" un po' e da studiare nel modo "giusto".

    Prima ti ho chiesto una cosa: quanto hai già letto e capito del framework standard, questo: https://docs.oracle.com/en/java/javase/14/docs/api ??
    Così come c'è questa documentazione, esiste la documentazione "javadoc" anche per tantissime altre librerie e framework: Spring, Spring Boot, Spring Data JPA ..., Hibernate, Jackson, Guava, le varie Apache Commons Xyz, log4j, SLF4J, ecc..
    Se non riesci a leggere questo tipo di documentazione, farai sempre una fatica enorme nel fare ed usare le cose.

    E poi cosa hai studiato finora del linguaggio Java? Specialmente per le webapp, è molto importante conoscere tutte le feature introdotte in Java 5: enhanced for, autoboxing/unboxing, generics, annotation e poi tutte le principali collection. Ti sono chiare tutte queste cose?

    Io in queste settimane sto (ri)studiando Kotlin (è un linguaggio per la JVM). Pensi che mi sia "buttato" subito a fare applicazioni in Kotlin con Spring/Spring Boot? (che è poi un obiettivo finale)
    Assolutamente NO!!! Ho preso il IntelliJ IDEA Community che ha il supporto diretto per Kotlin e poi ho fatto un progettino di studio dove sto mettendo TANTI piccoli sorgenti per "provare" tutti i costrutti e i concetti di Kotlin.

    Ad esempio sulle extension function ho fatto un mio esercizio:
    import java.math.BigInteger
    import java.text.NumberFormat
    
    fun main(args: Array<String>) {
        for (e in 64..96) {
            val value = 2 pow e
            println("2^$e = ${value.format()}")
        }
    }
    
    infix fun Int.pow(exp: Int) = BigInteger.valueOf(this.toLong()).pow(exp)
    
    fun BigInteger.format() = NumberFormat.getIntegerInstance().format(this)
    Con le extension function si possono "aggiungere" funzionalità alle classi già esistenti. Le classi NON vengono ovviamente modificate, quelle function vengono usate e risolte "staticamente" da Kotlin. Ho definito un pow da usare in forma "infissa" con il tipo Int per poter fare es. 2 pow e ed ottenere un BigInteger. E poi al BigInteger ho aggiunto un format() per formattare in maniera localizzata.
    E per testare il tutto ho fatto un for su un range (di Kotlin) per provare un po' di esponenti, stampando con i "template" String di Kotlin.
    E la stampa è es.:

    2^64 = 18.446.744.073.709.551.616
    2^65 = 36.893.488.147.419.103.232
    .....

    Tu forse penserai: "ma queste sono stupidaggini!" Certo .... ma con questi tanti piccoli "esercizi" su costrutti e concetti sto prendendo MOLTA confidenza con Kotlin. È una strada più difficile, "dura" ma alla fine mi darà una conoscenza fine e dettagliata del linguaggio. E a me piace così ...
  • Re: Migliorare la mia esperienza con Spring Boot 2

    andbin ha scritto:


    Prima ti ho chiesto una cosa: quanto hai già letto e capito del framework standard, questo: https://docs.oracle.com/en/java/javase/14/docs/api ??
    Scusa mi sono dimenticato, hai ragione. Mai letto, è un elenco di definizioni. Non sostituisce un testo.
    Lo leggo per delucidazioni su qualche pezzetto di codice. L'ho fatto qui:
    https://www.iprogrammatori.it/forum-programmazione/java/httpstatus-not-found-modelandview-t42857.html
    per HttpStatus.NOT_FOUND ma non mi ha aiutato a risolvere.
    https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/ModelAndView.html
    ModelAndView(String viewName, HttpStatus status)
    Create a new ModelAndView given a view name and HTTP status.
    NOT_FOUND
    404 Not Found.

    Ho capito che il codice ModelAndView imposta lo status su 404 ma non ne comprendo il significato e l'utilità e le circostanze che tale pratica possa rilevarsi utile. Per queste ragioni ritengo la risorsa utile per una consultazione ma non per studiare un framework.

    enhanced for >> certo, questo è una sciocchezza!
    autoboxing/unboxing >> certo, questo è una sciocchezza! ricordo anche che è uno strumento pieno di bug, fatto praticamente con il cul@, scusa il termine, guarda qui:
    class Prima {
        public static void main (String[] args) {
            Integer x = 100;
            Integer y = 100;
            System.out.println(x==y);
            Integer x2 = 1000;
            Integer y2 = 1000;
            System.out.println(x2==y2);
        }
    }
    certo, questo è una sciocchezza!
    generics >> si anche questo è chiaro!
    tutte le principali collection >> si, ricordo anche queste, List, Arraylist, TreeMap, ecc... non a memoria ma le ricordo.
    annotation >> Avevo letto questo:
    https://www.amazon.it/Java-guida-completa-Herbert-Schildt/dp/8838667667
    ma sono sicuro di non aver mai visto le annotazioni. Non saprei creare un'annotazione tutta mia con Java puro.

    Non nutro grande interesse per Kotlin, non fa parte della filosofia di Java. Sono quasi certo che il responsabile di questa castrazione sia Apple ma comunque non mi piace ugualmente come non mi piace Swift. Kotlin e Swift li studierò in un'altra vita. questo è sicuro al 100%!
  • Re: Migliorare la mia esperienza con Spring Boot 2

    giannino1995 ha scritto:


    Scusa mi sono dimenticato, hai ragione. Mai letto, è un elenco di definizioni. Non sostituisce un testo.
    Vero, non sostituisce un testo. Ma VA consultato il più possibile, perché è lì che puoi trovare e "conoscere" quello che il framework offre.

    giannino1995 ha scritto:


    autoboxing/unboxing >> certo, questo è una sciocchezza! ricordo anche che è uno strumento pieno di bug, fatto praticamente con il cul@
    Quello che tu hai riportato e descritto con del codice NON È un "bug" ma un comportamento ben noto, per design. E che spesso, tra l'altro, si trova pure negli esami di certificazione.
    E se tu avessi STUDIATO come si deve, sapresti anche dire il perché di questo comportamento.

    giannino1995 ha scritto:


    generics >> si anche questo è chiaro!
    Spero .... pure subtyping, bounds, wildcard?
    Perché sono gli argomenti più complessi.

    giannino1995 ha scritto:


    annotation >> Avevo letto questo:
    https://www.amazon.it/Java-guida-completa-Herbert-Schildt/dp/8838667667
    ma sono sicuro di non aver mai visto le annotazioni. Non saprei creare un'annotazione tutta mia con Java puro.
    Vabbè .. è raro/improbabile dover definire una nuova annotation. Ma se userai Spring Framework/Boot, le annotation (già definite) te le ritroverai dappertutto !!

    giannino1995 ha scritto:


    Non nutro grande interesse per Kotlin, non fa parte della filosofia di Java. Sono quasi certo che il responsabile di questa castrazione sia Apple
    Apple non c'entra nulla. L'azienda che ha sviluppato Kotlin è JetBrains ... sì, quella che fa il IntelliJ IDEA ..

    E comunque sappi, lo dicevo giorni fa in un'altra discussione: Kotlin è "TOSTO" per ME che ho 11+ anni di esperienza con Java
    Giusto solo per darti una idea.

    Quindi... studia Java.
  • Re: Migliorare la mia esperienza con Spring Boot 2

    Il comportamento che ti ho descritto è dovuto al fatto che la JVM crea delle istanze immutabili che vengono riutilizzate (per motivi di performance) ma per me resta comunque un grosso bug, se invece è una cosa voluta allora una pessima scelta, solo a mio avviso ovviamente.
    subtyping, bounds, wildcard non mi dicono nulla ma i generic servono per scrivere codice che sia riutilizzabile per classi differenti.
    Comunque non mi hai spiegato quel HttpStatus.NOT_FOUND a che diavolo serve.
    Kotlin è roba per gente tosta, non so neppure fare siti dinamici, figurati app! Su questo sono pienamente d’accordo.
    Quindi alla fine cosa mi consigli di fare?
    Tu per fare siti dinamici in ambito lavorativo quali strumenti usi? Boot Strap 2 + JPA + Ajax?
    IntelliJ IDEA è davvero bello. Gli ultimi aggiornamenti però mi hanno dato problemi.
Devi accedere o registrarti per scrivere nel forum
30 risposte