{"id":23396,"date":"2023-09-21T09:00:00","date_gmt":"2023-09-21T07:00:00","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=23396"},"modified":"2023-09-21T09:17:54","modified_gmt":"2023-09-21T07:17:54","slug":"framework-spring","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/framework-spring\/","title":{"rendered":"La guida definitiva al Framework Spring"},"content":{"rendered":"\n<p>Questa rapida guida di Codemotion su Spring offre spunti e concetti chiave per comprendere e iniziare con questo framework popolare.<\/p>\n\n\n\t\t\t\t<div class=\"wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-89340e01      \"\n\t\t\t\t\tdata-scroll= \"1\"\n\t\t\t\t\tdata-offset= \"30\"\n\t\t\t\t\tstyle=\"\"\n\t\t\t\t>\n\t\t\t\t<div class=\"uagb-toc__wrap\">\n\t\t\t\t\t\t<div class=\"uagb-toc__title\">\n\t\t\t\t\t\t\tIndice\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"uagb-toc__list-wrap \">\n\t\t\t\t\t\t<ol class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#una-breve-storia-di-spring\" class=\"uagb-toc-link__trigger\">Una breve storia di Spring<\/a><li class=\"uagb-toc__list\"><a href=\"#struttura-modulare\" class=\"uagb-toc-link__trigger\">Struttura modulare<\/a><ul class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#modularit\u00e0-per-la-progettazione-di-applicazioni-java-ee\" class=\"uagb-toc-link__trigger\">Modularit\u00e0 per la progettazione di applicazioni Java EE<\/a><li class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#il-core-container\" class=\"uagb-toc-link__trigger\">Il Core Container<\/a><\/li><\/ul><\/li><li class=\"uagb-toc__list\"><a href=\"#spring-mvc-vs-spring-boot\" class=\"uagb-toc-link__trigger\">Spring MVC vs Spring Boot<\/a><ul class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#spring-boot-semplifica-la-vita\" class=\"uagb-toc-link__trigger\">Spring Boot semplifica la vita<\/a><li class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#caratteristiche-chiave-di-spring-boot\" class=\"uagb-toc-link__trigger\">Caratteristiche chiave di Spring Boot<\/a><ul class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#starter-per-semplificare-la-configurazione\" class=\"uagb-toc-link__trigger\">Starter per semplificare la configurazione<\/a><li class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#server-integrato\" class=\"uagb-toc-link__trigger\">Server integrato<\/a><li class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#metriche-verifica-e-configurazione-esternalizzate\" class=\"uagb-toc-link__trigger\">Metriche, verifica e configurazione esternalizzate<\/a><li class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#auto-setup\" class=\"uagb-toc-link__trigger\">Auto Setup<\/a><li class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#inversione-di-controllo-ioc\" class=\"uagb-toc-link__trigger\">Inversione di controllo (IoC)<\/a><\/li><\/ul><li class=\"uagb-toc__list\"><a href=\"#programmazione-orientata-agli-aspetti-aop\" class=\"uagb-toc-link__trigger\">Programmazione orientata agli aspetti (AOP)<\/a><li class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#transazioni-dei-dati\" class=\"uagb-toc-link__trigger\">Transazioni dei dati<\/a><li class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#concetto-di-transazione\" class=\"uagb-toc-link__trigger\">Concetto di Transazione<\/a><\/li><\/ul><\/li><\/ul><\/li><li class=\"uagb-toc__list\"><a href=\"#primi-passi-con-spring\" class=\"uagb-toc-link__trigger\">Primi passi con Spring<\/a><\/ul><\/ul><\/ol>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\n\n\n<h2 class=\"gb-headline gb-headline-016b179e gb-headline-text\">Una breve storia di Spring<\/h2>\n\n\n\n<p>Oggi, il Framework Spring \u00e8 uno standard de facto. Centinaia di migliaia di sviluppatori in tutto il mondo lo utilizzano con grande successo.<\/p>\n\n\n\n<p>Spring \u00e8 uno strumento open source creato nel 2003 per superare una grave lacuna nello standard ufficiale e offrire una soluzione reale di contenitore di componenti leggeri. Nel ottobre 2002, \u00e8 stato pubblicato il libro di Rod Johnson &#8220;Expert One-on-One J2EE Design and Development&#8221;, che ha discusso lo stato attuale dello sviluppo di applicazioni enterprise in Java e ha evidenziato diverse gravi carenze di Java EE e del framework dei componenti EJB. <\/p>\n\n\n\n<p>Johnson ha suggerito una soluzione pi\u00f9 semplice focalizzata su classi Java ordinarie e sull&#8217;iniezione delle dipendenze. Tuttavia, sebbene alcuni considerino Java EE e Spring come rivali, Spring \u00e8 un framework modulare per il backend che dovrebbe essere visto come complementare a Java EE.<\/p>\n\n\n\n<p>Dal suo inizio, Spring continua a innovare ed evolversi con una comunit\u00e0 attiva che offre feedback continuo.<\/p>\n\n\n\n<h2 class=\"gb-headline gb-headline-f9cdd9a2 gb-headline-text\">Struttura modulare<\/h2>\n\n\n\n<p>Il framework Spring contiene 20 moduli, tra cui Core, Beans, Context, Expression Language, AOP, Aspects, Instrumentation, JDBC, ORM, OXM, JMS, Transaction, Web, Servlet e Struts.<\/p>\n\n\n\n<h3 class=\"gb-headline gb-headline-220ed358 gb-headline-text\">Modularit\u00e0 per la progettazione di applicazioni Java EE<\/h3>\n\n\n\n<p>Il framework modulare di Spring gli conferisce una certa facilit\u00e0 per la progettazione e la creazione di applicazioni Java EE. Oggi integra implementazioni di altre tecnologie come &#8220;.NET&#8221; o Python.<\/p>\n\n\n\n<p>I moduli di base di Spring (per lo sviluppo di applicazioni Java EE) sono 20 in totale e l&#8217;efficacia di Spring rispetto ad altri framework <a href=\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/8-motivi-per-conoscere-java\/\" class=\"ek-link\">Java<\/a> \u00e8 dovuta al fatto che utilizza Beans (semplici POJO, non sono JavaBeans), file di configurazione (file XML) e annotazioni (dalla versione 2.0, le annotazioni di Spring sono state rafforzate dalla versione 2.5).<\/p>\n\n\n\n<h3 class=\"gb-headline gb-headline-692c2e33 gb-headline-text\">Il Core Container<\/h3>\n\n\n\n<p>Il Core Container \u00e8 composto dai moduli Core stessi, Beans, Context ed EL (Expression Language):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Spring contiene 20 moduli: Core, Beans, Context, Expression Language, AOP, Aspects, Instrumentation, JDBC, ORM, OXM, JMS, Transaction, Web, Servlet e Struts, tra gli altri.<\/li>\n\n\n\n<li>Il modulo Core fornisce le funzionalit\u00e0 di base del framework oltre a IoC (Inversione di Controllo) e all&#8217;iniezione delle dipendenze.<\/li>\n\n\n\n<li>Il modulo Beans offre l&#8217;interfaccia BeanFactory che consente l&#8217;implementazione del pattern Factory Method.<\/li>\n\n\n\n<li>Il modulo Context si basa sulla solida base fornita dai moduli Core e Beans ed \u00e8 un modo per accedere agli oggetti definiti e configurati all&#8217;interno di un&#8217;applicazione sviluppata con Spring. L&#8217;interfaccia ApplicationContext \u00e8 il punto focale del modulo Context.<\/li>\n\n\n\n<li>Il modulo SpEL (Spring Expression Language) fornisce un potente linguaggio di espressione (derivato da EL) che consente di manipolare gli oggetti a tempo di esecuzione in un&#8217;applicazione Spring.<\/li>\n\n\n\n<li>Il Framework Spring utilizza diverse pratiche di programmazione comprovate come IoC (Inversione di Controllo) e design pattern come il pattern Factory e il pattern Singleton, per citarne solo due. Con il pattern Factory, Spring fornisce due tipi di implementazione del contenitore IoC utilizzando le interfacce BeanFactory e ApplicationContext. L&#8217;interfaccia ApplicationContext deriva dall&#8217;interfaccia BeanFactory, mantenendo la loro compatibilit\u00e0 e rendendo i file di configurazione dei bean di entrambe le implementazioni identici.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>Lettura consigliata: <em><a href=\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/javascript-it\/libreria-manipolazione-dei-colori-javascript\/\" class=\"ek-link\">La migliore libreria per la manipolazione dei colori in JavaScript<\/a><\/em><\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/08\/WhatsApp-Image-2023-08-02-at-14.18.24-1024x683.jpeg\" alt=\"framework spring\" class=\"wp-image-22689\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/08\/WhatsApp-Image-2023-08-02-at-14.18.24-1024x683.jpeg 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/08\/WhatsApp-Image-2023-08-02-at-14.18.24-300x200.jpeg 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/08\/WhatsApp-Image-2023-08-02-at-14.18.24-768x512.jpeg 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/08\/WhatsApp-Image-2023-08-02-at-14.18.24-600x400.jpeg 600w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/08\/WhatsApp-Image-2023-08-02-at-14.18.24.jpeg 1344w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"gb-headline gb-headline-f5a273ed gb-headline-text\">Spring MVC vs Spring Boot<\/h2>\n\n\n\n<p>Spring MVC \u00e8 principalmente utilizzato per lo sviluppo di applicazioni web, mentre Spring \u00e8 un framework backend che richiede configurazioni personalizzate. D&#8217;altra parte, Spring Boot \u00e8 pronto all&#8217;uso.<\/p>\n\n\n\n<h3 class=\"gb-headline gb-headline-e1abdcad gb-headline-text\">Spring Boot semplifica la vita<\/h3>\n\n\n\n<p>Spring Boot semplifica notevolmente lo sviluppo di applicazioni Spring. Si basa su tutte le funzionalit\u00e0 predefinite di Spring e consente di gestire tutte le funzioni di qualsiasi applicazione Java. A seconda della complessit\u00e0 e della configurazione, Spring Boot pu\u00f2 essere di grande aiuto nel ridurre la complessit\u00e0 delle configurazioni Spring.<\/p>\n\n\n\n<p>In poche parole, Spring Boot rappresenta un&#8217;estensione del framework Spring, che include le configurazioni standard necessarie per l&#8217;avvio di un&#8217;applicazione Spring.<\/p>\n\n\n\n<h3 class=\"gb-headline gb-headline-6bf2da49 gb-headline-text\">Caratteristiche chiave di Spring Boot<\/h3>\n\n\n\n<p>Ecco alcune delle caratteristiche chiave di Spring Boot:<\/p>\n\n\n\n<h4 class=\"gb-headline gb-headline-a06d2038 gb-headline-text\">Starter per semplificare la configurazione<\/h4>\n\n\n\n<p>Spring Boot offre dipendenze simili a starter che semplificano notevolmente la creazione e la configurazione dell&#8217;applicazione.<\/p>\n\n\n\n<h4 class=\"gb-headline gb-headline-3d040477 gb-headline-text\">Server integrato<\/h4>\n\n\n\n<p>Spring Boot include un server integrato, eliminando la complessit\u00e0 della distribuzione delle applicazioni.<\/p>\n\n\n\n<h4 class=\"gb-headline gb-headline-b88e77b9 gb-headline-text\">Metriche, verifica e configurazione esternalizzate<\/h4>\n\n\n\n<p>Spring Boot fornisce una serie di strumenti per la gestione delle metriche, la verifica e la configurazione, il che facilita notevolmente la manutenzione dell&#8217;applicazione.<\/p>\n\n\n\n<h4 class=\"gb-headline gb-headline-8746656d gb-headline-text\">Auto Setup<\/h4>\n\n\n\n<p>Spring Boot offre funzionalit\u00e0 di auto-configurazione, riducendo il carico di lavoro per gli sviluppatori.<\/p>\n\n\n\n<h4 class=\"gb-headline gb-headline-ded90111 gb-headline-text\">Inversione di controllo (IoC)<\/h4>\n\n\n\n<p>L&#8217;Inversione di Controllo (IoC) \u00e8 un principio di progettazione fondamentale di Spring. Il framework Spring IoC \u00e8 completo e complesso e si basa su tre elementi chiave:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Configurazione tramite file XML per collegare le implementazioni alle interfacce.<\/li>\n\n\n\n<li>Le classi sono considerate bean e quindi hanno getter e setter per i campi da iniettare.<\/li>\n\n\n\n<li>L&#8217;iniezione avviene tramite un file di configurazione, di default ApplicationContext.xml, da Spring.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"gb-headline gb-headline-0e9de7d9 gb-headline-text\">Programmazione orientata agli aspetti (AOP)<\/h3>\n\n\n\n<p>Come framework modulare, Spring supporta l&#8217;implementazione della programmazione orientata agli aspetti (AOP). In AOP, \u00e8 possibile utilizzare concetti come i Consigli e i Punti di Taglio per separare il codice aziendale dal codice tecnico relativo a questioni trasversali.<\/p>\n\n\n\n<h3 class=\"gb-headline gb-headline-a365ac27 gb-headline-text\">Transazioni dei dati<\/h3>\n\n\n\n<p>Spring Transaction \u00e8 il modulo specifico responsabile dell&#8217;integrazione delle transazioni e offre diversi vantaggi:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Fornisce un&#8217;astrazione sulle diverse soluzioni disponibili nel mondo Java per la gestione delle transazioni.<\/li>\n\n\n\n<li>Si basa sulla programmazione orientata agli aspetti (AOP) per gestire la demarcazione delle transazioni nel codice dell&#8217;applicazione.<\/li>\n\n\n\n<li>Consente la gestione dichiarativa delle transazioni.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"gb-headline gb-headline-316bc356 gb-headline-text\">Concetto di Transazione<\/h3>\n\n\n\n<p>La nozione di transazione \u00e8 fondamentale nei sistemi informativi e nei database relazionali (RDBMS) come Oracle, MySQL e PostgreSQL. Una transazione \u00e8 definita da quattro propriet\u00e0, rappresentate dall&#8217;acronimo ACID:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Atomicit\u00e0: una transazione garantisce che tutte le operazioni al suo interno vengano eseguite con successo o che nessuna di esse venga mantenuta.<\/li>\n\n\n\n<li>Coerenza: la transazione garantisce che sposti il sistema da uno stato valido a un altro stato valido.<\/li>\n\n\n\n<li>Isolamento: due transazioni sono isolate l&#8217;una dall&#8217;altra, producendo lo stesso risultato indipendentemente dall&#8217;ordine di esecuzione.<\/li>\n\n\n\n<li>Durabilit\u00e0: la transazione garantisce che le modifiche apportate al sistema siano conservate in modo permanente.<\/li>\n<\/ul>\n\n\n\n<p>Le transazioni vengono demarcate all&#8217;interno del codice dell&#8217;applicazione per definire quali operazioni debbano essere eseguite all&#8217;interno di una transazione.<\/p>\n\n\n\n<h2 class=\"gb-headline gb-headline-5e63a441 gb-headline-text\">Primi passi con Spring<\/h2>\n\n\n\n<p>Esistono numerose risorse per aiutarti a familiarizzare con il framework. Due libri che ti permetteranno di comprendere la potenza di Spring sono &#8220;Spring in Action&#8221; di Craig Walls e &#8220;Spring Recipes&#8221; di Gary Mak e altri.<\/p>\n\n\n\n<p>Spring \u00e8 facile da apprendere perch\u00e9 l&#8217;intero framework modulare \u00e8 progettato per funzionare con POJO (Plain Old Java Objects), senza dipendere da interfacce speciali, classi astratte o simili. Gli sviluppatori possono scrivere software come normali applicazioni Java: interfacce, classi ed enumerazioni e utilizzare Spring per collegare i componenti, senza dover fare straordinari sforzi per realizzare la connessione.<\/p>\n\n\n<p><script src=\"https:\/\/codemotion.activehosted.com\/f\/embed.php?id=42\" type=\"text\/javascript\" charset=\"utf-8\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Questa rapida guida di Codemotion su Spring offre spunti e concetti chiave per comprendere e iniziare con questo framework popolare. Una breve storia di Spring Oggi, il Framework Spring \u00e8 uno standard de facto. Centinaia di migliaia di sviluppatori in tutto il mondo lo utilizzano con grande successo. Spring \u00e8 uno strumento open source creato&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/framework-spring\/\">Read more<\/a><\/p>\n","protected":false},"author":64,"featured_media":17301,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[10263],"tags":[10329,10438],"collections":[],"class_list":{"0":"post-23396","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-backend-it","8":"tag-framework","9":"tag-sviluppo-software-it","10":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Tutto ci\u00f2 che devi sapere sul Framework Spring<\/title>\n<meta name=\"description\" content=\"Questa rapida guida di Codemotion su Spring offre spunti e concetti chiave per comprendere e iniziare con questo framework popolare.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/framework-spring\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"La guida definitiva al Framework Spring\" \/>\n<meta property=\"og:description\" content=\"Questa rapida guida di Codemotion su Spring offre spunti e concetti chiave per comprendere e iniziare con questo framework popolare.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/framework-spring\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-21T07:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-21T07:17:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"6000\" \/>\n\t<meta property=\"og:image:height\" content=\"3375\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Codemotion\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Codemotion\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/it\\\/backend-it\\\/framework-spring\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/it\\\/backend-it\\\/framework-spring\\\/\"},\"author\":{\"name\":\"Codemotion\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/person\\\/201bb98b02412383686cced7521b861c\"},\"headline\":\"La guida definitiva al Framework Spring\",\"datePublished\":\"2023-09-21T07:00:00+00:00\",\"dateModified\":\"2023-09-21T07:17:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/it\\\/backend-it\\\/framework-spring\\\/\"},\"wordCount\":1096,\"publisher\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/it\\\/backend-it\\\/framework-spring\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1.png\",\"keywords\":[\"Framework\",\"sviluppo software\"],\"articleSection\":[\"Backend\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/it\\\/backend-it\\\/framework-spring\\\/\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/it\\\/backend-it\\\/framework-spring\\\/\",\"name\":\"Tutto ci\u00f2 che devi sapere sul Framework Spring\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/it\\\/backend-it\\\/framework-spring\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/it\\\/backend-it\\\/framework-spring\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1.png\",\"datePublished\":\"2023-09-21T07:00:00+00:00\",\"dateModified\":\"2023-09-21T07:17:54+00:00\",\"description\":\"Questa rapida guida di Codemotion su Spring offre spunti e concetti chiave per comprendere e iniziare con questo framework popolare.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/it\\\/backend-it\\\/framework-spring\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/it\\\/backend-it\\\/framework-spring\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/it\\\/backend-it\\\/framework-spring\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1.png\",\"contentUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1.png\",\"width\":6000,\"height\":3375,\"caption\":\"Codemotion Guide to Spring Framework\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/it\\\/backend-it\\\/framework-spring\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Backend\",\"item\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/it\\\/backend-it\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"La guida definitiva al Framework Spring\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#website\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/codemotionlogo.png\",\"contentUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Codemotion.Italy\\\/\",\"https:\\\/\\\/x.com\\\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/person\\\/201bb98b02412383686cced7521b861c\",\"name\":\"Codemotion\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/cropped-codemotionlogo-150x150.png\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/cropped-codemotionlogo-150x150.png\",\"contentUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/cropped-codemotionlogo-150x150.png\",\"caption\":\"Codemotion\"},\"description\":\"Articles wirtten by the Codemotion staff. Tech news, inspiration, latest treends in software development and more.\",\"sameAs\":[\"https:\\\/\\\/x.com\\\/CodemotionIT\"],\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/author\\\/codemotion-2\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Tutto ci\u00f2 che devi sapere sul Framework Spring","description":"Questa rapida guida di Codemotion su Spring offre spunti e concetti chiave per comprendere e iniziare con questo framework popolare.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/framework-spring\/","og_locale":"en_US","og_type":"article","og_title":"La guida definitiva al Framework Spring","og_description":"Questa rapida guida di Codemotion su Spring offre spunti e concetti chiave per comprendere e iniziare con questo framework popolare.","og_url":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/framework-spring\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2023-09-21T07:00:00+00:00","article_modified_time":"2023-09-21T07:17:54+00:00","og_image":[{"width":6000,"height":3375,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1.png","type":"image\/png"}],"author":"Codemotion","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Codemotion","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/framework-spring\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/framework-spring\/"},"author":{"name":"Codemotion","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/201bb98b02412383686cced7521b861c"},"headline":"La guida definitiva al Framework Spring","datePublished":"2023-09-21T07:00:00+00:00","dateModified":"2023-09-21T07:17:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/framework-spring\/"},"wordCount":1096,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/framework-spring\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1.png","keywords":["Framework","sviluppo software"],"articleSection":["Backend"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/framework-spring\/","url":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/framework-spring\/","name":"Tutto ci\u00f2 che devi sapere sul Framework Spring","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/framework-spring\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/framework-spring\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1.png","datePublished":"2023-09-21T07:00:00+00:00","dateModified":"2023-09-21T07:17:54+00:00","description":"Questa rapida guida di Codemotion su Spring offre spunti e concetti chiave per comprendere e iniziare con questo framework popolare.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/framework-spring\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/framework-spring\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/framework-spring\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1.png","width":6000,"height":3375,"caption":"Codemotion Guide to Spring Framework"},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/framework-spring\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Backend","item":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/"},{"@type":"ListItem","position":3,"name":"La guida definitiva al Framework Spring"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/201bb98b02412383686cced7521b861c","name":"Codemotion","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/cropped-codemotionlogo-150x150.png","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/cropped-codemotionlogo-150x150.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/cropped-codemotionlogo-150x150.png","caption":"Codemotion"},"description":"Articles wirtten by the Codemotion staff. Tech news, inspiration, latest treends in software development and more.","sameAs":["https:\/\/x.com\/CodemotionIT"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/codemotion-2\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1-600x400.png","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1-600x600.png","author_info":{"display_name":"Codemotion","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/codemotion-2\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1.png",6000,3375,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1-150x150.png",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1-300x169.png",300,169,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1-768x432.png",768,432,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1-1024x576.png",1024,576,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1-1536x864.png",1536,864,true],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1-2048x1152.png",2048,1152,true],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1.png",100,56,false],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1-180x128.png",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1-896x504.png",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1-400x225.png",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1-600x400.png",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2022\/03\/825bc6f1-4341-43ee-9ebe-21dc27378f80-2-1-600x600.png",600,600,true]},"uagb_author_info":{"display_name":"Codemotion","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/codemotion-2\/"},"uagb_comment_info":0,"uagb_excerpt":"Questa rapida guida di Codemotion su Spring offre spunti e concetti chiave per comprendere e iniziare con questo framework popolare. Una breve storia di Spring Oggi, il Framework Spring \u00e8 uno standard de facto. Centinaia di migliaia di sviluppatori in tutto il mondo lo utilizzano con grande successo. Spring \u00e8 uno strumento open source creato&#8230;&hellip;","lang":"it","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/23396","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/64"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=23396"}],"version-history":[{"count":2,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/23396\/revisions"}],"predecessor-version":[{"id":23402,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/23396\/revisions\/23402"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/17301"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=23396"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=23396"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=23396"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=23396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}