{"id":3441,"date":"2016-03-15T23:49:30","date_gmt":"2016-03-15T23:49:30","guid":{"rendered":"http:\/\/blog.fabianpiau.com\/?p=3441"},"modified":"2024-12-30T14:34:55","modified_gmt":"2024-12-30T14:34:55","slug":"qcon-london-2016-spring-framework-5-preview-and-roadmap","status":"publish","type":"post","link":"https:\/\/blog.fabianpiau.com\/en\/2016\/03\/15\/qcon-london-2016-spring-framework-5-preview-and-roadmap\/","title":{"rendered":"QCon London 2016 &#8211; Spring Framework 5 &#8211; Preview &#038; Roadmap"},"content":{"rendered":"<p><a class=\"lang\" href=\"https:\/\/blog.fabianpiau.com\/fr\/2016\/03\/15\/qcon-london-2016-spring-framework-5-preview-and-roadmap\/\" title=\"Lire en fran\u00e7ais\"><strong class=\"labellang\"><span class=\"fr\">&nbsp;<\/span>Version fran\u00e7aise disponible<\/strong><\/a><\/p>\n<p>Juergen Hoeller, the co-founder of the <a href=\"https:\/\/spring.io\/projects\/spring-framework\" target=\"_blank\" title=\"Spring Framework\" rel=\"noopener noreferrer\">Spring framework<\/a> was doing a presentation last week at <a href=\"https:\/\/qconlondon.com\/\" target=\"_blank\" title=\"QCon London website\" rel=\"noopener noreferrer\">QCon London<\/a>.<\/p>\n<div style=\"max-width: 560px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00083\/spring-5-qcon-london.jpg?ssl=1\" rel=\"shadowbox[sbpost-3441];player=img;\" title=\"QCon London 2016 - Spring Framework 5 - Preview &#038; Roadmap by Juergen Hoeller\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00083\/spring-5-qcon-london-thumbnail.jpg?resize=550%2C365&#038;ssl=1\" alt=\"QCon London 2016 - Spring Framework 5 - Preview &#038; Roadmap\" title=\"QCon London 2016 - Spring Framework 5 - Preview &#038; Roadmap\" width=\"550\" height=\"365\" class=\"size-medium wp-image-257\" \/><\/a><p class=\"wp-caption-text\">QCon London 2016 - Spring Framework 5 - Preview & Roadmap<\/p><\/div>\n<p><br clear=\"none\" \/><\/p>\n<p>Some history background first, the <a href=\"https:\/\/spring.io\/projects\/spring-framework\" target=\"_blank\" title=\"Spring Framework\" rel=\"noopener noreferrer\">Spring framework<\/a> has been created in 2002 with a first release in 2004 (yes, it was 12 years ago!), quite a long time for a framework which is still widely used and under development. The adoption and the number of projects within Spring has never stopped growing since. At the beginning, Spring was created to manage POJOs in a lightweight container by using dependency injection (following the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Inversion_of_control\" title=\"Inversion of Control definition\" target=\"_blank\" rel=\"noopener noreferrer\">Inversion of Control<\/a> or IoC principle), Spring was an alternative to heavy JEE containers such as GlassFish or WebSphere.<\/p>\n<p><br clear=\"none\" \/><\/p>\n<p>Spring has now become a set of projects that are available to fulfill many requirements when building an application. Spring is like a set of <em>Lego<\/em> bricks, you can pick and assemble these compatible sub-projects to build something bigger.<\/p>\n<ul>\n<li>Imagine you want to use a database, you can use <a href=\"https:\/\/projects.spring.io\/spring-data\/\" target=\"_blank\" title=\"Spring Data\" rel=\"noopener noreferrer\">Spring Data<\/a><\/li>\n<li>You need to secure your application, just use <a href=\"https:\/\/projects.spring.io\/spring-security\/\" target=\"_blank\" title=\"Spring Security\" rel=\"noopener noreferrer\">Spring Security<\/a><\/li>\n<li>You want to be able to login to your application through social networks, <a href=\"https:\/\/docs.spring.io\/spring-social\/docs\/current\/reference\/htmlsingle\/\" target=\"_blank\" title=\"Spring Social\" rel=\"noopener noreferrer\">Spring Social<\/a> is here for you<\/li>\n<li>And so on<\/li>\n<\/ul>\n<p>You can take a look at the <a href=\"https:\/\/spring.io\/projects\" target=\"_blank\" title=\"Spring projects\" rel=\"noopener noreferrer\">full list of Spring projects<\/a>.<\/p>\n<p><br clear=\"none\" \/><\/p>\n<h4>Spring 4.3<\/h4>\n<p>Before jumping to Spring 5, Juergen talked about Spring 4. When I write this post, the current version is 4.2.5. A release candidate (RC) of Spring 4.3 will be available in March 2016 followed by a General availability (GA) one in May 2016. This version will include a couple of handy changes:<\/p>\n<ul>\n<li>In Spring Framework core:<br \/>\nThe <code>@autowired<\/code> annotation used to inject a dependency will be implicit so will become optional<\/li>\n<li>In Spring MVC (part of the core):<br \/>\nThe declaration of a MVC controller is refined. Before, <code>value<\/code> was the attribute name:<\/p>\n<pre class=\"brush: java; light: true; title: ; notranslate\" title=\"\">\r\n@RequestMapping(value = &#039;\/mypath&#039;, method = RequestMethod.POST)\r\n<\/pre>\n<p>After, we use a more meaningful name <code>path<\/code>:<\/p>\n<pre class=\"brush: java; light: true; title: ; notranslate\" title=\"\">\r\n@RequestMapping(path = &#039;\/mypath&#039;, method = RequestMethod.POST)\r\n<\/pre>\n<p>There are even new annotation shortcuts to avoid specifying the HTTP <code>method<\/code> attribute. And even the attribute name is optional, so it becomes very simple.<\/p>\n<pre class=\"brush: java; light: true; title: ; notranslate\" title=\"\">\r\n@PostMapping(&#039;\/mypath&#039;)\r\n<\/pre>\n<p>And the equivalent for a <code>GET<\/code><\/p>\n<pre class=\"brush: java; light: true; title: ; notranslate\" title=\"\">\r\n@GetMapping(&#039;\/mypath&#039;)\r\n<\/pre>\n<\/li>\n<\/ul>\n<p><br clear=\"none\" \/><\/p>\n<h4>Spring 5.0 announced<\/h4>\n<p>Then, Juergen announced that Spring 5.0 will be available sometime in 2017 and compatible with JDK 8 and 9. On the roadmap, the GA should be available in March 2017 (at the same time the JDK 9 will be released). In case JDK 9 release is delayed, Spring 5.0 will be probably delayed too.<\/p>\n<p><br clear=\"none\" \/><\/p>\n<h4>What are the major updates in Spring 5?<\/h4>\n<p>There are 3 key infrastructure themes:<\/p>\n<ul>\n<li>JDK 9 and Jigsaw modules<\/li>\n<li>Servlet 4.0 and HTTP\/2<\/li>\n<li>Reactive architecture<\/li>\n<\/ul>\n<p><br clear=\"none\" \/><\/p>\n<h4>JDK 9 and use of Jigsaw<\/h4>\n<p>In short, <a href=\"http:\/\/openjdk.java.net\/projects\/jigsaw\/\" target=\"_blank\" title=\"Jigsaw\" rel=\"noopener noreferrer\">Jigsaw<\/a> brings modularity to the JDK. The JDK is split up into modules and you can pick up only the ones you need to make your application works. <\/p>\n<p>The JDK will come with a set of modules, but you can also define your owns. To define a module, you need to create a <code>module-info.java<\/code> file:<\/p>\n<pre class=\"brush: java; light: true; title: ; notranslate\" title=\"\">\r\nmodule my.app.db {\r\n  requires java.sql;\r\n  requires spring.jdbc;\r\n}\r\n<\/pre>\n<p>Inside a module, you specify the modules you need with the keyword <code>requires<\/code>. Modules are managing transitive dependencies, a bit like Maven. If I use the module <code>my.app.db<\/code> above, I will be able to access any classes coming from the <code>java.sql<\/code> module. The main benefit is that it makes your application more modular relying on a subset of modules instead of a full JDK.<\/p>\n<p>All the jars for Spring 5 will come with Jigsaw metadata out of the box, the module name will follow the Maven Central jar naming to avoid confusion (spring-context, spring-jdbc, spring-webmvc&#8230;). It will be very easy to build your applications by specifying the Spring modules you need.<\/p>\n<p><br clear=\"none\" \/><\/p>\n<h4>HTTP\/2<\/h4>\n<p>HTTP\/1.1 is an old protocol (1999) and has some limitations. In the front-end world, we are using some workarounds, but it is not ideal. For example, to avoid overloading the server with multiple requests when a page contains a lot of images, we use CSS sprites (i.e. combine these images into one single file that we then split on the client side via CSS). With HTTP\/2, the protocol is faster as it allows concurrency requests and removes the &#8220;head-of-line blocking&#8221;. There are other benefits that you can read on the <a href=\"https:\/\/http2.github.io\/faq\/\" target=\"_blank\" title=\"HTTP\/2 Frequently Asked Questions\" rel=\"noopener noreferrer\">HTTP\/2 Frequently Asked Questions page<\/a>.<\/p>\n<p>As Juergen stated, &#8220;We need to embrace HTTP\/2 in the Java land as well!&#8221;<\/p>\n<p>To achieve that, Spring 5 will use the latest version of the Servlet library, <a href=\"https:\/\/web.archive.org\/web\/20210508034255\/https:\/\/blogs.oracle.com\/theaquarium\/servlet-40\" target=\"_blank\" title=\"Servlet 4.0\" rel=\"noopener noreferrer\">Servlet 4.0<\/a> that:<\/p>\n<ul>\n<li>Enforces support for HTTP\/2 in servlet containers<\/li>\n<li>Gives API features for Stream priorization and push resources<\/li>\n<\/ul>\n<p><br clear=\"none\" \/><\/p>\n<h4>Reactive programming<\/h4>\n<p>Another big announcement was the creation of a new Spring project called Spring Reactive. It will be a Spring MVC-like endpoint based on a reactive foundation.<\/p>\n<ul>\n<li>Reuses Spring MVC programming model style<\/li>\n<li>But accepting and returning reactive streams (e.g. <a href=\"https:\/\/projectreactor.io\/docs\/core\/release\/api\/reactor\/core\/publisher\/Mono.html\" target=\"_blank\" title=\"Reactor Mono publisher\" rel=\"noopener noreferrer\">Mono<\/a> &#8211; 1 element, <a href=\"https:\/\/projectreactor.io\/docs\/core\/release\/api\/reactor\/core\/publisher\/Flux.html\" target=\"_blank\" title=\"Reactor Flux publisher\" rel=\"noopener noreferrer\">Flux<\/a> &#8211; list of elements)<\/li>\n<\/ul>\n<p>Spring Reactive will be based on <a href=\"https:\/\/github.com\/reactor\/reactor\" target=\"_blank\" title=\"Project Reactor Github\" rel=\"noopener noreferrer\">Project Reactor<\/a>, a set of foundational libraries for building reactive cloud-ready applications on the JVM. This new project is not stand-alone and will be included in the Spring Framework core at some point.<\/p>\n<p>Juergen reminds us that &#8220;Reactive is coming&#8221;:<\/p>\n<ul>\n<li>No blocking thread involved<\/li>\n<li>Reactive datastore drivers become available (PostgreSQL, Mongo, Couchbase&#8230;)<\/li>\n<li>Reactive HTTP client (Netty, Jetty, OkHttp&#8230;)<\/li>\n<\/ul>\n<blockquote><p>Note for myself and maybe for you as well, it is important to read some materials on Reactive and get familiar with the concepts, it will probably spread in the following years.<\/p><\/blockquote>\n<p><br clear=\"none\" \/><\/p>\n<p>Last but not least, Spring 5 will use all the latest features introduced with Java 8:<\/p>\n<ul>\n<li>Lambdas, method reference, default methods in interfaces<\/li>\n<li>Ability to expose JDK 8 API types in core interfaces and classes: <code>java.util.Optional<\/code>, <code>java.util.function<\/code>, <code>java.util.stream<\/code><\/li>\n<\/ul>\n<p><br clear=\"none\" \/><\/p>\n<p>As a matter of fact, Spring 5 will require Java 8. If your project is still using an older version, you will have to use Spring 4.X. The good news is that Spring 4 will have an extended support until 2020, so you will still have some time to migrate!<\/p>\n<p><br clear=\"none\" \/><\/p>\n<p>Slides of the presentation are available on the <a href=\"https:\/\/qconlondon.com\/london-2016\/system\/files\/presentation-slides\/juergenhoeller-springframework5_0.pdf\" target=\"_blank\" title=\"Slides - QCon London 2016 - Spring Framework 5 - Preview &amp; Roadmap\" rel=\"noopener noreferrer\">QCon website<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>&nbsp;Version fran\u00e7aise disponible Juergen Hoeller, the co-founder of the Spring framework was doing a presentation last week at QCon London. Some history background first, the Spring framework has been created in 2002 with a first release in 2004 (yes, it was 12 years ago!), quite a long time for a framework which is still widely [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3494,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[6],"tags":[277,129],"class_list":["post-3441","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-event","tag-qcon","tag-spring"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>QCon London 2016 - Spring Framework 5 - Preview &amp; Roadmap | CarmaBlog<\/title>\n<meta name=\"description\" content=\"&nbsp;English version available Juergen Hoeller, le co-fondateur du Framework Spring a fait une pr\u00e9sentation la semaine derni\u00e8re au QCon London.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.fabianpiau.com\/en\/2016\/03\/15\/qcon-london-2016-spring-framework-5-preview-and-roadmap\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"QCon London 2016 - Spring Framework 5 - Preview &amp; Roadmap | CarmaBlog\" \/>\n<meta property=\"og:description\" content=\"&nbsp;English version available Juergen Hoeller, le co-fondateur du Framework Spring a fait une pr\u00e9sentation la semaine derni\u00e8re au QCon London.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.fabianpiau.com\/en\/2016\/03\/15\/qcon-london-2016-spring-framework-5-preview-and-roadmap\/\" \/>\n<meta property=\"og:site_name\" content=\"CarmaBlog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/fabian.piau\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/fabian.piau\" \/>\n<meta property=\"article:published_time\" content=\"2016-03-15T23:49:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-30T14:34:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.fabianpiau.com\/wp-content\/uploads\/2016\/03\/spring.png\" \/>\n\t<meta property=\"og:image:width\" content=\"450\" \/>\n\t<meta property=\"og:image:height\" content=\"450\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Fabian Piau\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fabianpiau\" \/>\n<meta name=\"twitter:site\" content=\"@fabianpiau\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fabian Piau\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/2016\\\/03\\\/15\\\/qcon-london-2016-spring-framework-5-preview-and-roadmap\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/2016\\\/03\\\/15\\\/qcon-london-2016-spring-framework-5-preview-and-roadmap\\\/\"},\"author\":{\"name\":\"Fabian Piau\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"headline\":\"QCon London 2016 &#8211; Spring Framework 5 &#8211; Preview &#038; Roadmap\",\"datePublished\":\"2016-03-15T23:49:30+00:00\",\"dateModified\":\"2024-12-30T14:34:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/2016\\\/03\\\/15\\\/qcon-london-2016-spring-framework-5-preview-and-roadmap\\\/\"},\"wordCount\":2207,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/2016\\\/03\\\/15\\\/qcon-london-2016-spring-framework-5-preview-and-roadmap\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2016\\\/03\\\/spring.png?fit=450%2C450&ssl=1\",\"keywords\":[\"qcon\",\"spring\"],\"articleSection\":[\"Event\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blog.fabianpiau.com\\\/2016\\\/03\\\/15\\\/qcon-london-2016-spring-framework-5-preview-and-roadmap\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2016\\\/03\\\/15\\\/qcon-london-2016-spring-framework-5-preview-and-roadmap\\\/\",\"url\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2016\\\/03\\\/15\\\/qcon-london-2016-spring-framework-5-preview-and-roadmap\\\/\",\"name\":\"QCon London 2016 - Spring Framework 5 - Preview & Roadmap | CarmaBlog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2016\\\/03\\\/15\\\/qcon-london-2016-spring-framework-5-preview-and-roadmap\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/2016\\\/03\\\/15\\\/qcon-london-2016-spring-framework-5-preview-and-roadmap\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2016\\\/03\\\/spring.png?fit=450%2C450&ssl=1\",\"datePublished\":\"2016-03-15T23:49:30+00:00\",\"dateModified\":\"2024-12-30T14:34:55+00:00\",\"description\":\"&nbsp;English version available Juergen Hoeller, le co-fondateur du Framework Spring a fait une pr\u00e9sentation la semaine derni\u00e8re au QCon London.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2016\\\/03\\\/15\\\/qcon-london-2016-spring-framework-5-preview-and-roadmap\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[[\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2016\\\/03\\\/15\\\/qcon-london-2016-spring-framework-5-preview-and-roadmap\\\/\"]]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2016\\\/03\\\/15\\\/qcon-london-2016-spring-framework-5-preview-and-roadmap\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2016\\\/03\\\/spring.png?fit=450%2C450&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2016\\\/03\\\/spring.png?fit=450%2C450&ssl=1\",\"width\":450,\"height\":450,\"caption\":\"spring\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2016\\\/03\\\/15\\\/qcon-london-2016-spring-framework-5-preview-and-roadmap\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Homepage\",\"item\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ev\u00e9nement\",\"item\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/category\\\/event\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"QCon London 2016 &#8211; Spring Framework 5 &#8211; Preview &#038; Roadmap\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/\",\"name\":\"CarmaBlog\",\"description\":\"Agility, Java programming, New technologies and more...\",\"publisher\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\",\"name\":\"Fabian Piau\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"width\":567,\"height\":667,\"caption\":\"Fabian Piau\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\"},\"description\":\"Java developer, Fabian is interested in new technologies and their use within an Agile environment.\",\"sameAs\":[\"https:\\\/\\\/blog.fabianpiau.com\",\"https:\\\/\\\/www.facebook.com\\\/fabian.piau\",\"https:\\\/\\\/www.instagram.com\\\/fabianpiau\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/fabianpiau\\\/\",\"https:\\\/\\\/x.com\\\/fabianpiau\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"QCon London 2016 - Spring Framework 5 - Preview & Roadmap | CarmaBlog","description":"&nbsp;English version available Juergen Hoeller, le co-fondateur du Framework Spring a fait une pr\u00e9sentation la semaine derni\u00e8re au QCon London.","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:\/\/blog.fabianpiau.com\/en\/2016\/03\/15\/qcon-london-2016-spring-framework-5-preview-and-roadmap\/","og_locale":"en_US","og_type":"article","og_title":"QCon London 2016 - Spring Framework 5 - Preview & Roadmap | CarmaBlog","og_description":"&nbsp;English version available Juergen Hoeller, le co-fondateur du Framework Spring a fait une pr\u00e9sentation la semaine derni\u00e8re au QCon London.","og_url":"https:\/\/blog.fabianpiau.com\/en\/2016\/03\/15\/qcon-london-2016-spring-framework-5-preview-and-roadmap\/","og_site_name":"CarmaBlog","article_publisher":"https:\/\/www.facebook.com\/fabian.piau","article_author":"https:\/\/www.facebook.com\/fabian.piau","article_published_time":"2016-03-15T23:49:30+00:00","article_modified_time":"2024-12-30T14:34:55+00:00","og_image":[{"width":450,"height":450,"url":"https:\/\/blog.fabianpiau.com\/wp-content\/uploads\/2016\/03\/spring.png","type":"image\/png"}],"author":"Fabian Piau","twitter_card":"summary_large_image","twitter_creator":"@fabianpiau","twitter_site":"@fabianpiau","twitter_misc":{"Written by":"Fabian Piau","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.fabianpiau.com\/2016\/03\/15\/qcon-london-2016-spring-framework-5-preview-and-roadmap\/#article","isPartOf":{"@id":"https:\/\/blog.fabianpiau.com\/2016\/03\/15\/qcon-london-2016-spring-framework-5-preview-and-roadmap\/"},"author":{"name":"Fabian Piau","@id":"https:\/\/blog.fabianpiau.com\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"headline":"QCon London 2016 &#8211; Spring Framework 5 &#8211; Preview &#038; Roadmap","datePublished":"2016-03-15T23:49:30+00:00","dateModified":"2024-12-30T14:34:55+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.fabianpiau.com\/2016\/03\/15\/qcon-london-2016-spring-framework-5-preview-and-roadmap\/"},"wordCount":2207,"commentCount":0,"publisher":{"@id":"https:\/\/blog.fabianpiau.com\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"image":{"@id":"https:\/\/blog.fabianpiau.com\/2016\/03\/15\/qcon-london-2016-spring-framework-5-preview-and-roadmap\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2016\/03\/spring.png?fit=450%2C450&ssl=1","keywords":["qcon","spring"],"articleSection":["Event"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.fabianpiau.com\/2016\/03\/15\/qcon-london-2016-spring-framework-5-preview-and-roadmap\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.fabianpiau.com\/en\/2016\/03\/15\/qcon-london-2016-spring-framework-5-preview-and-roadmap\/","url":"https:\/\/blog.fabianpiau.com\/en\/2016\/03\/15\/qcon-london-2016-spring-framework-5-preview-and-roadmap\/","name":"QCon London 2016 - Spring Framework 5 - Preview & Roadmap | CarmaBlog","isPartOf":{"@id":"https:\/\/blog.fabianpiau.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.fabianpiau.com\/en\/2016\/03\/15\/qcon-london-2016-spring-framework-5-preview-and-roadmap\/#primaryimage"},"image":{"@id":"https:\/\/blog.fabianpiau.com\/2016\/03\/15\/qcon-london-2016-spring-framework-5-preview-and-roadmap\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2016\/03\/spring.png?fit=450%2C450&ssl=1","datePublished":"2016-03-15T23:49:30+00:00","dateModified":"2024-12-30T14:34:55+00:00","description":"&nbsp;English version available Juergen Hoeller, le co-fondateur du Framework Spring a fait une pr\u00e9sentation la semaine derni\u00e8re au QCon London.","breadcrumb":{"@id":"https:\/\/blog.fabianpiau.com\/en\/2016\/03\/15\/qcon-london-2016-spring-framework-5-preview-and-roadmap\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":[["https:\/\/blog.fabianpiau.com\/en\/2016\/03\/15\/qcon-london-2016-spring-framework-5-preview-and-roadmap\/"]]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.fabianpiau.com\/en\/2016\/03\/15\/qcon-london-2016-spring-framework-5-preview-and-roadmap\/#primaryimage","url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2016\/03\/spring.png?fit=450%2C450&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2016\/03\/spring.png?fit=450%2C450&ssl=1","width":450,"height":450,"caption":"spring"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.fabianpiau.com\/en\/2016\/03\/15\/qcon-london-2016-spring-framework-5-preview-and-roadmap\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Homepage","item":"https:\/\/blog.fabianpiau.com\/en\/"},{"@type":"ListItem","position":2,"name":"Ev\u00e9nement","item":"https:\/\/blog.fabianpiau.com\/en\/category\/event\/"},{"@type":"ListItem","position":3,"name":"QCon London 2016 &#8211; Spring Framework 5 &#8211; Preview &#038; Roadmap"}]},{"@type":"WebSite","@id":"https:\/\/blog.fabianpiau.com\/en\/#website","url":"https:\/\/blog.fabianpiau.com\/en\/","name":"CarmaBlog","description":"Agility, Java programming, New technologies and more...","publisher":{"@id":"https:\/\/blog.fabianpiau.com\/en\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.fabianpiau.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/blog.fabianpiau.com\/en\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14","name":"Fabian Piau","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","width":567,"height":667,"caption":"Fabian Piau"},"logo":{"@id":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1"},"description":"Java developer, Fabian is interested in new technologies and their use within an Agile environment.","sameAs":["https:\/\/blog.fabianpiau.com","https:\/\/www.facebook.com\/fabian.piau","https:\/\/www.instagram.com\/fabianpiau\/","https:\/\/www.linkedin.com\/in\/fabianpiau\/","https:\/\/x.com\/fabianpiau"]}]}},"views":1647,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2016\/03\/spring.png?fit=450%2C450&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pbSHyl-Tv","_links":{"self":[{"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/posts\/3441","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/comments?post=3441"}],"version-history":[{"count":0,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/posts\/3441\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/media\/3494"}],"wp:attachment":[{"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/media?parent=3441"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/categories?post=3441"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/tags?post=3441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}