Spring I/O 2016

2016

List of videos

Spring Integration with Spring Boot and RabbitMQ - Gary Russell @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona Spring Integration extends the Spring programming model to support the well-known Enterprise Integration Patterns. Spring Integration enables lightweight messaging within Spring-based applications and supports integration with external systems via declarative adapters. Those adapters provide a higher-level of abstraction over Spring's support for remoting, messaging, and scheduling. Spring Integration's primary goal is to provide a simple model for building enterprise integration solutions while maintaining the separation of concerns that is essential for producing maintainable, testable code. This talk will provide an overview of the framework for those new to it, while exploring some more advanced techniques for those that already have some familiarity. It will be mainly live coding using Spring Boot and RabbitMQ.

Watch
Caching with Spring: Advanced Topics and Best Practices - Michael Plöd @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona Caching is relevant for a wide range of business applications and there is a huge variety of products in the market ranging from easy to adopt local heap based caches to powerful distributed data grids. This talk addresses advanced usage of Spring’s caching abstraction such as integrating a cache provider that is not integrated by the default Spring Package. In addition to that I will also give an overview of the JCache Specification and it’s adoption in the Spring ecosystem. Finally the presentation will also address various best practices for integrating various caching solutions into enterprise grade applications. This talk comes with many live demos.

Watch
gRPC 101 for Spring Developers - Ray Tsang @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona gRPC is a high performance, open source, general RPC framework that puts mobile and HTTP/2 first. gRPC is based on many years of Google's experience in building distributed systems - it is designed to be low latency, bandwidth and CPU efficient, to create massively distributed systems that span data centers, as well as power mobile apps, real-time communications, IoT devices and APIs. It's also interoperable between multiple languages. But beyond that fact that it's more efficient than REST, we'll look into how to use gRPC's streaming API, where you can establish server-side streaming, client-side streaming, and bidirectional streaming! This allows developers to build sophisticated real-time applications with ease. In addition to learning about gRPC and HTTP/2 concepts with code and demonstrations, we'll also deep dive into integration with existing build systems such as Maven and Gradle, but also frameworks such as Spring Boot and RxJava. - Writing/using a Spring Boot starter to run gRPC server - Configuring projects to generate gRPC stub code - Integrating w/ RxJava's observable sequences, which matches very well with gRPC's Stream Observable constructs

Watch
Testing Spring Boot Applications - Phil Webb @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona In this talk we'll cover various techniques that can be used to test your Spring Boot applications. We'll take a look at a simple application and show how you can: Unit test classes Use mocking Test the persistence layer Test remote REST calls Test MVC controllers Integration test a fully running application Along the way we'll also discuss how you can structure your applications to make them more amenable to testing, and how new features in Spring Boot 1.4 make testing even easier.

Watch
Get HATEOAS and Hypermedia right with Spring - Eugene Paraschiv @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona In this talk I focus on a core aspect of REST - Hypermedia and HATEOAS and share the practical steps of building this out into an existing API with Spring HATEOAS and Spring Data REST. You’ll first learn about the basics - content negotiation, API discoverability at the root and introducing links into the responses of your API to help guide your clients. We’ll then go into more advanced scenarios such as versioning, evolving an API with the right use of Hypermedia and the JSON-API spec. Finally, we’ll circle back and look at some great examples in public APIs in our ecosystem.

Watch
What's new in JHipster in 2016 by Julien Dubois @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona With more than 3000 Github stars, 150 000 downloads, and nearly 200 contributors, JHipster is the most popular Spring Boot application generator. Last year has been amazing: lots of new features, users, and ideas. In 2016 the project is moving even faster, with a new organization, new products, and new goals. This talk, by the JHipster lead developer, aims to show: - Our latest products: the JHipster "devbox", our usage of Docker, our marketplace, and all the new modules which have been created by third-party developers - Usages of JHipster from our top clients: how people work with JHipster in 20+ people teams, how companies do microservices with JHipster - How the current development team is working, and how you too can easily participate thanks to our new organization - Our roadmap for the future: what excites us, where we want to go, and how do we plan to achieve it

Watch
Spring Roo 2.0 Preview - Enrique Ruiz & César Ordiñana @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona In this talk we are going to present a preview of Spring Roo 2.0, a rewrite of the code generating tool for the development of Java web applications based on current Spring technologies like Spring Boot, Spring Data, etc.

Watch
Test-driven documentation with Spring REST Docs - Andy Wilkinson @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona RESTful APIs are eating the world, yet all too often the documentation can cause indigestion for the APIs' developers and their users. Developers have to deal with annotation overload, repetition, and an unpleasant writing environment. Users are then left with documentation that's inaccurate and difficult to use. It doesn't have to be this way. This talk will introduce Spring REST Docs and its test-driven approach to RESTful API documentation. We'll look at how it combines the power of Asciidoctor and your integration tests to produce documentation that's accurate and easy-to-read, while keeping your code DRY and free from annotation overload. We'll also look at some of the features that are new in Spring REST Docs 1.1, including support for REST Assured and Markdown.

Watch
Understanding Microservice Performance - Rob Harrop @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona The world at large seems sold on microservices as a way to build large, quality systems at the speed needed to compete in today's market. However, microservices are not without their downsides, one of which is the difficulty of reasoning about and optimising the performance of mircoservices working in tandem. In this session, attendees will learn the key concepts needed to measure the performance of their services, identify potential bottlenecks and take corrective action to ensure services perform as needed. Before we can reason about the performance of connected services, we must understand how to reason about services in isolation. The first half of the session is dedicated to discussing how to measure service performance correctly, what metrics matter and how to compare the performance of a service over time. In the second half of the session, we take our single-service knowledge and expand it out to reason about a set of services working together to provide some aggregate function. We'll see how the performance of each service affects the performance of the whole, and learn how to identify where to focus our optimisation efforts.

Watch
Customize your Spring Boot experience by writing your own Spring Boot starter - Michael Simons

Spring I/O 2016 - 19 -20 May Barcelona In this talk i'm gonna explain how you can create your own Spring Boot Starter and how a custom starter can help you to create shared modules for your application, being it "standard" web applications or micro services without having the Spring context scan all jars in the classpath. You'll learn to facilitate various conditions how to decide whether you're starter kicks in or not. As Spring Boot is all about banners we'll try to provide a custom Thymeleaf element that generates your banner inside a HTML page. Putting that to real world usage, I'll present a custom starter that helps my company to manage our JavaScript libraries in our products.

Watch
Using Spring with Scala - Bernhard Wenzel @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona Scala is becoming a popular choice for the JVM. However, developers with a Spring/Java background might be reluctant to give up all of their familiar tools and frameworks. Some efforts have been made to allow Spring developers to use Scala, most notably, the spring-scala project on spring.io. Unfortunately, it's development has ceased, leaving developers with no consistent way to integrate Spring with Scala. In this presentation I'd like to demonstrate how to introduce Scala into an existing Java/Spring environment. After a short introduction into Scala and reasons to use it, I'm going to showcase how to use Spring with Scala by selecting a few guides from the spring.io website and translating them into Scala. The objective of this talk is to convince the audience that developing in Scala does not necessarily mean to abandon years of Spring experience and the efficiency that comes with it. The same way that Scala works well with Java, it can also work well with Spring.

Watch
JUnit 5 - Shaping the Future of Testing on the JVM - Sam Brannen @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona Want to know what the hype surrounding JUnit 5 is all about? Then join this talk by JUnit 5 core committer Sam Brannen to find out! Since JUnit 4.0 was first released, a lot has happened in the world of Java. Unfortunately, JUnit 4 hasn't kept up with the times. JUnit 5 therefore aims to help shape the future of testing on the JVM, with a focus on Java 8, modularity, extensibility, and a modern programming API for authoring tests in Java. This session will start off by providing attendees an overview of the inspiration for and architecture of JUnit 5, from launchers to test engines. Sam will then take the audience on an example-driven tour of the new programming model, highlighting support for dependency injection via flexible method signatures, conditional test execution, using lambda expressions and method references in assertions and assumptions, and implementing test/before/after methods via interface default methods. To round off the discussion, Sam will present a deep dive into the new extension model in JUnit 5, demonstrating how to author and register extensions for conditional tests, method parameter resolution, lifecycle callbacks, and more.

Watch
Continuous Delivery of Microservices using Jenkins and Gradle - Alex Soto @ Spring I/O 2016

Through the use of build pipelines, Continuous Delivery will enable faster and more frequent build, test and deployment cycles of software. To ensure that what you are delivering has the required quality: how do we build a continuous delivery pipeline in the real world, and how do we correctly implement real integration and functional tests? In this session, instead of relying on static step configurations, we are going to demonstrate how to code a pipeline using Jenkins and Gradle. To write readable tests, we will see how Spock or Docker can help or how to create traceable Docker containers. The end result is faster application releases with higher quality. Using a simple Java application as an example, we will use Gradle: to build; to automate unit, integration and functional tests; and to utilize popular code quality tools. In addition, the Jenkins Workflow will act as the director of the process: to package, publish and deploy the deliverables.

Watch
Building Progressive Web Apps with Spring Boot and Polymer - Matti Tahvonen @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona Progressive Web Applications are as easy to find and start using as any webpage, but offer the rich user experience we associate with apps. The user experience is progressively upgraded as the user interacts with the application so that the app can be installed on the device, load faster, work offline and re-engage users through push notifications. In this talk we’ll explore what it takes to build a progressive web application – Service Workers, App Shells and Web App Manifests. We’ll then take a practical look at how we can use Spring Boot and Polymer to build a simple Progressive Web Application of our own.

Watch
40 Tips & Tricks for Spring in IntelliJ IDEA - Yann Cébron & Stéphane Nicoll @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona IDEs can be powerful, but hard to learn. Some features are hidden or simply not well known. Let’s end this dilemma and make you more productive and efficient when working on Spring applications. Learn how to navigate, edit and perform refactorings across a variety of common Spring technologies. You’ll leave this session with a whole stack of power tricks - right from the developers working on it.

Watch
From Imperative To Reactive - Rossen Stoyanchev @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona The change to reactive involves a fundamental shift in writing application logic from imperative to non-blocking. Understanding what this change means is an essential first step towards creating reactive applications. This talk introduces reactive programming and discusses some of the tools for Java developers. We’ll use examples to demonstrate how to compose async logic and write non-blocking applications.

Watch
Cloud-native streaming and event-driven microservices - Marius Bogoevici @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona The future of scalable data processing is event-driven microservices! They provide a powerful paradigm that solves issues typically associated with distributed applications, such as availability, data consistency, or communication complexity, and allows the creation of sophisticated and extensible data processing pipelines, bridging the gap between the big data and more traditional enterprise integration world. Building on the ease of development and deployment provided by Spring Boot, the cloud native capabilities of Spring Cloud, and the messaging model and integration patterns of Spring Integration, the Spring Cloud Stream project provides a simple and powerful framework for event-driven microservices. It defines primitives and abstractions specifically addressing the needs of both event-driven integration, as well as data streaming. For addressing the complexity of deployment, at a higher level of abstraction, Spring Cloud Data Flow is an integrated orchestration layer that provides a highly productive experience for deploying and managing sophisticated data pipelines consisting of standalone microservices. A pluggable runtime SPI allows Spring Cloud Data Flow to coordinate these applications across a variety of distributed runtime platforms such as Apache YARN, Cloud Foundry, Kubernetes, or Apache Mesos. We will demonstrate how to easily create complex data processing pipelines that bridge the world of big data and enterprise integration together, by building Spring Cloud Stream applications from the ground up, and, in the end, how to orchestrate them with Spring Cloud Data Flow.

Watch
Securing RESTful services with Spring HATEOAS and HDIV - Roberto Velasco @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona The number of applications based on a client-side MVC architecture which consume RESTful services, is increasing exponentially. For example, mobile native applications (iOS, Android, etc.) or client-side MVC web applications (AngularJS, React, etc.). In many cases, the security risks associated with those environments are very similar to the traditional web risks associated with server-side MVC architectures based on traditional web frameworks such as Spring MVC, Grails or JSF. Even though the level of complexity to implement attacks against those kinds of client-side MVC architectures can sometimes be higher, the existing risks remain almost the same, basically because many are server-side risks that do not depend on the client-side technology. Analyzing the traditional OWASP Top 10 web risks, we can consider almost all of them are relevant to these new scenarios, except for the XSS risk within native mobile applications which do not use any web rendering feature. So the question is, how can we protect these service based applications against the traditional OWASP Top 10 web risks? HATEOAS is a constraint included within REST application architecture, which, in addition to the already well known benefits such as discoverability and decoupled architecture, can help to improve your application security. Unlike REST implementations without HATEOAS, where the clients determine what they can do next, HATEOAS proposes a new approach where the server not only returns data, but also hypermedia artifacts, giving the client a way to determine the set of actions available at any given point, based on the state of the server application workflow. This talk will present an innovative approach to automate the protection of Spring HATEOAS services against OWASP Top 10 security risks, through the integration of Spring HATEOAS with the Hdiv security framework.

Watch
10 ways to get super-productive with Spring Boot - Stéphane Nicoll and Brian Clozel

Spring I/O 2016 - 19 -20 May Barcelona Spring Boot DevTools is not the only new feature that boosts your productivity. During this live coding session, we’ll work on 10 common app features and see how Boot is making your life easier.

Watch
Flavors of Concurrency in Java - Oleg Šelajev @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona Writing concurrent code that is also correct is unbelievably hard. Naturally, humanity has developed a number of approaches to handle concurrency in the code, starting from basic threads that follow the hardware way to do concurrency to higher level primitives like fibers and work-stealing solutions. But which approach is the best for you? In this session, we'll take a look at a simple concurrent problem and solve it using different ways to manage concurrency: threads, executors, actors, fibers, monadic code with completable futures. All these approaches are different from the simplicity, readability, configuration and management point of view. Some scenarios are better modelled with threads, while sometimes you're better off with actors. We'll discuss the benefits of each approach and figure out when it's worth pursuing in your project.

Watch
Bringing new life to the view layer of Spring web apps with Thymeleaf by Daniel Fernández

Spring I/O 2016 - 19 -20 May Barcelona The view layer of Java web applications has undergone a profound transformation along the last years, with the advent of so many client-side frameworks and the move of significant parts of the user interface responsibilities to the browser side. But this has never meant the complete dismissal of the server side as an important factor in the building of web user interfaces, and newer architectures are increasingly stressing the need for good server-side template technologies that work together with the client side in order to create the best and most efficient possible UIs. At the same time, the growing mismatch between web design and software development has not helped reducing the overlap and the conflict between the teams and tools that bring data to the view layer and those in charge of representing such data in the most useful and visually appealing way. Thymeleaf recently appeared in this scenario as a modern Java template engine for the server side aimed at offering the most satisfactory developer experience possible, at the same time as providing a good integration for client-side frameworks during the development process. And it is currently doing so with some degree of success, having become the view layer of choice for many teams, especially in the Spring MVC and Spring Boot ecosystems. This talk will cover the core Thymeleaf concepts as well as its usage in Spring web applications, and also show the new exciting features included in Thymeleaf 3.0.

Watch
Developing a Geospatial Webservice with Kotlin and Spring Boot - Sébastien Deleuze @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona As described in this announcement I made on Spring blog (https://spring.io/blog/2016/02/15/developing-spring-boot-applications-with-kotlin), it is now easy to create a Spring Boot application using Kotlin. Thanks to a sample Geospatial chat application, I will show how Spring Boot and Kotlin share the same pragmatic, innovative and optionated mindset to allow you to build simple but powerful projects. That talk will also provide an opportunity to show how to use a relational database with Spring Data but without JPA in order to use advanced PostgreSQL functionalities (like its powerful spatial database extender PostGIS or the native JSON support) while keeping a lightweight stack.

Watch
Modern Java Component Design with Spring 4.3 - Juergen Hoeller @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona Spring's programming and configuration model has a strong design philosophy with respect to application components and configuration artifacts. Spring's annotation-based component story is fine-tuned for source code readability as well as consistency across an entire application's codebase. This session presents selected Spring Framework 4 component model highlights, with a focus on the upcoming Spring Framework 4.3 and a selection of Java 8 enabled features, illustrated with many code examples and noteworthy design considerations.

Watch
Spring Cloud Microservices, a journey inside a financial entity - Toni Jara & Jordi Gil

Spring I/O 2016 - 19 -20 May Barcelona The talk will explain the journey from a monolithic architecture to Spring Cloud Microservices for application development inside a financial entity, along with the transition to DevOps strategies… a journey that has just begun…

Watch
Architecting your codebase - Kamil Szymański @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona Nowadays, it's easy to hear that every big system will inevitably become a big ball of mud and that microservices are the only cure for that disease. We're often convinced by that and blinded by buzzwords we re-implement our systems in new, "better" ways making the same mistakes again and again. In this talk we won't bother with fairy tales nor silver bullets instead we'll focus on the root cause of codebase rot, the cause that lies in the source code, not in the lack of some brand-new architecture, all-problems-solving technology or other magic incantations. We'll take one of the Spring's demo projects and refactor it. We'll discuss existing flaws and question the way things were done. Are you a fan of clean code? See what it means to apply similar thinking at the architectural level.

Watch
Spring IO 2016 - Video Summary

Spring I/O 2016 (19-20 May, Barcelona) is a two day event focused on the Spring Framework ecosystem www.springio.net

Watch
What's new in Spring Data? - Oliver Gierke @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona This talk will give a broad overview of the new features introduced in the latest Spring Data release trains. We will cover recent additions and improvements in Spring Data Commons - the module that's shared amongst the store specific ones. We'll then delve into the latest and greatest features of individual store modules, like JPA, MongoDB, Neo4j, Solr and the community ones as well.

Watch
KEYNOTE - Designing Applications: The Reactive Way - Rossen Stoyanchev and Stephane Maldini

Spring I/O 2016 - 19 -20 May Barcelona Over the past year the Spring Framework and Reactor teams have been busy working on support for reactive programming models. Reactor 2.5 is in milestone phases with great momentum behind it. Spring Framework 5 M1 is just around the corner. In this keynote we'll take on you a journey to help you understand the major paradigm shift that's taking place and what it means for the way we write and scale applications.

Watch
Cloud Native Java - Josh Long @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona "It is not necessary to change. Survival is not mandatory." -W. Edwards Deming Work takes time to flow through an organization and ultimately be deployed to production where it captures value. It’s critical to reduce time-to-production. Software - for many organizations and industries - is a competitive advantage. Organizations break their larger software ambitions into smaller, independently deployable, feature -centric batches of work - microservices. In order to reduce the round-trip between stations of work, organizations collapse or consolidate as much of them as possible and automate the rest; developers and operations beget “devops,” cloud-based services and platforms (like Cloud Foundry) automate operations work and break down the need for ITIL tickets and change management boards. But velocity, for velocity’s sake, is dangerous. Microservices invite architectural complexity that few are prepared to address. In this talk, we’ll look at how high performance organizations like Ticketmaster, Alibaba, and Netflix make short work of that complexity with Spring Boot and Spring Cloud.

Watch
Building a Meetup Recommendation Engine with Spring Data Neo4j - Sven Janko @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona We all love meetups but it's sometimes hard to find ones that are relevant and exciting. That's why we can use Meetup.com's data APIs to seed a graph database. With the data in the graph, recommending relevant meetup groups and events is a breeze. We write a small recommendation engine application using Spring Boot and Spring Data Neo4j. And the best thing - you can do it too, with any kind of Web-APIs or other data source.

Watch
RAML - Specification to manage the API lifecycle - Fátima Casaú @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona RESTful API Modeling Language (RAML), is a specification that looks like YAML and makes easy to manage the API lifecycle. In short, in this talk, I show the features of RAML and how to integrate in a Spring Boot project

Watch
Living on the Edge (Service): Bundling Microservices to Optimize Consumption for Devices

Spring I/O 2016 - 19 -20 May Barcelona Living on the Edge (Service): Bundling Microservices to Optimize Consumption for Devices with Spring Cloud & Netflix OSS - Mark Heckler Devices (phones, tablets, etc.) already consume most services/data, but they have to get those services somewhere! In this session, learn how to use proven patterns & open source software to quickly and effectively build edge services - API gateways - that marshal & streamline communication between your key services and end-users with devices in hand. The presenter will demonstrate how to develop & manage microservices & expose them via an edge service, securely, using OSS tools employed by Netflix to keep movies streaming globally 24x7.

Watch
Spring Boot and Cloud for Legacy Applications - Marten Deinum @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona Spring Boot as well as the Spring Cloud projects are very neat and powerful technologies. But how easy are they to apply to existing application and how can they help improve existing applications. In this talk we will take a look at a legacy application and introduce Spring Boot and some of the Spring Cloud technologies to it.

Watch
Extending Spring Data - Petar Tahchiev @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona This talk will focus on some particular features of spring-data. It will outline the problems we had to overcome while building the administrative interface for the nemesis e-commerce platform. Our administrative interface is a javascript application that talks to our spring-data-rest enabled platform. We will cover topics like, JPA alternative domain types, querydsl, projections and json schema.

Watch
Spring Cloud *: Exploring Spring Cloud Implementations - Spencer Gibb @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona What is Spring Cloud? What types of problems does it solve? In this session we will discuss the Spring Cloud abstractions and interfaces that may be implemented: DiscoveryClient, LoadBalancerClient, Configuration, Bus and Tracing. We will compare and contrast some target technologies and discuss the tradeoffs and nuances of each, such as: netflix, consul, etcd, zookeeper, cloud foundry and zipkin. Join Spencer Gibb, co-lead of the Spring Cloud project, for discussion and demonstration of Spring Cloud, focusing on implementations of these technologies.

Watch
Spring Data Couchbase: A Coming of Age - Simon Baslé @ Spring I/O 2016

Spring I/O 2016 - 19 -20 May Barcelona Come learn what's new in the Spring Data Couchbase 2.0.0 release, and how you can now leverage Couchbase through Spring for various use cases, including caching, session, automatic auditing, free form querying of your JSON entities (with N1QL and query derivation) and Multi-Dimensional querying (geographical and beyond using Spatial Views)... Now tied together by Spring Boot and the Initializr checkboxes :)

Watch