The Spring Blog

News and Events

Webinar Replay: Building WebSocket Browser Applications with Spring

Speaker: Rossen Stoyanchev



So, you've written a "Hello world!" WebSocket application or perhaps even a chat sample. You're able to exchange messages even in pre-Servlet 3.1 containers and pre-IE 10 browsers (that don't yet support WebSocket) thanks to the SockJS protocol and Spring's support for it. However a message is a blank page that can have any content. Whatever message format you choose, proprietary or standard, both client and server need to understand it as well as distinguish different kinds of messages. You need support for the publish-subscribe pattern central to messaging applications so you can broadcast messages to one or more subscribers. You need to incorporate security, validation, and so on. In short you need to build a real-world application. If you're used to web applications (and Spring MVC annotated controllers) you are familiar with the foundation that HTTP provides including URLs (nouns), HTTP methods (verbs), headers, parameters, and others. Imagine building an application without HTTP, just a socket. WebSocket gives you this brand new, exciting capability -- full duplex, two-way communication -- yet you no longer have an application-level protocol. Can an entire application be built around a single Endpoint class processing all messages, assuming a single WebSocket connection between browser and server? Join Rossen Stoyanchev as he demonstrates that, thankfully, the WebSocket protocol has a built-in sub-protocol mechanism.


Nov 21st Webinar: Have You Seen Spring Lately?

Speaker: Josh Long

It's been an amazing year for Spring! 2013 saw the Spring family join Pivotal where - along with Cloud Foundry and our data driven technologies (the Pivotal HD Hadoop distribution, the GemFire data grid, and the RabbitMQ message broker) - Spring supports today's application workloads and profiles. Today's Spring embraces Java 8, Scala, Groovy, provides a best-in-class REST stack, supports the open web, mobile applications, big-data applications and batch workloads. Today's Spring is easy to get started with, easy to learn, and embraces conventions over configuration. Today's Spring is part of the Spring.IO platform. Today's Spring is...Pivotal. Join Spring developer advocate Josh Long as he re-introduces you to today's Spring, a Spring you may not have seen yet.


Nov 19th Webinar: Dynamic routing at 1 million per second with Spring Integration

Speakers: John Davies and Josh Long

While some of today's systems can hit μSec performance it usually take a lot of good design and optimisation. The solution is often hard-baked and inflexible and the end user still wants the flexibility promised by ESBs with dynamic routing based on runtime rules with transformations from one format to another. Josh and John will walk you through the latest in high performance message handling with Spring Integration covering non-XML (binary and CSV) data, code generation, on-the-fly compilation, dynamic routing and in-memory queries - an hour well spent.


Oct 24th webinar: Modern Component Design with Spring

Speaker: Juergen Hoeller

In recent years, the Spring Framework focuses on flexible and powerful Java-based configuration. This talk presents Spring as an annotation-oriented application framework, illustrating the rich set of features that Spring has to offer for modern component design. General component model trends will be discussed along with selected Spring feature highlights, such as standardized annotations for dependency injection, stereotypes, and declarative services such as validation and scheduling.


Webinar replay: Spring Boot - Simplifying Spring for Everyone

Speaker: Phil Webb

Modern systems are no longer the monolithic deployments that they once were. The promise of true 'service oriented architecture' is finally here, and systems are now being composed from small, discrete, self contained units. But with more applications to write, and more deployments to manage, are you looking for something to help ease the pain? Are you fed up with searching stackoverflow for copy-paste configuration, do you want to write apps that can 'just run'? Perhaps you are just starting out with Spring and want a quick way to learn the basics without manually downloading and installing half the Internet?


Webinar replay: Taming Coupling & Cohesive Beasts with Modularity Patterns and Spring

Speaker: Param Rengaiah, Aspire Systems

By now you should have heard about coupling and cohesiveness. These concepts, and their third cousin, polymorphism, is what we as developers chase day-in and day-out. They tease us with reusability and the promise of comprehensiveness of our code. They entice us with promises of code quality and testability. They came in the form of "Object Oriented’ design, followed by GoF and SOLID Design Patterns, DDD, BDD.. but none of them delivered what they promised. Now, the new kids on the block are Functional Programming and Modularity Patterns.


Webinar Replay: Getting Agile with Pivotal Tracker

Presenter: Davis W. Frank, Pivotal Labs


"Agile Software Development" is an ambiguous term. It's an umbrella term. It's a controversial term. But what does it really mean? The first principle of agile development is to keep feedback loops small to allow a team to make frequent, small corrections on the way to delivery. Pivotal Labs practices this every day. We coach our clients on how to re-view their problems and approach from first principles. We wrote Pivotal Tracker - the Agile project management app - to work the way we think. Come learn about tight feedback loops, how to use them in software, and how Pivotal Tracker can keep your backlog sane.


This Week in Spring - Sept 24th 2013

Hello everyone! Pieter posting this on Josh Long's behalf here... this week the Spring and Cloud Foundry teams are at JavaOne talking to developers about Spring, Cloud Foundry, Hadoop and big data! Happily, our pretty new @GoPivotal booth has garnered a lot of attention!

I met Duke, too! I think the big guy was as happy to see me as I was him!

  1. Spring ninja Greg Turnquist put together a nice post on how to contribute to Spring Boot with a pull request. The article does ultimately talk about the processing sending a pull request, but most of it's a really great introduction to extending Spring Boot to suit a new use case (like JMS, which simply hadn't been added yet). This post also introduces some cool features in Spring Boot, if you haven't learned about it yet.
  2. Speaking of Spring Boot, check out this upcoming Spring Boot webinar featuring project co-lead Phil Webb!
  3. Rossen Stoyanchev put together a knock-out piece how to build web applications that use websockets, or Sock.js, and how to then layer STOMP on top of that for an easier messaging-style interaction between the browser and the service.
  4. Rossen also has an upcoming webinar on Oct 8th, Building WebSocket Browser Applications with Spring, showing off the best of his SpringOne2GX 2013 session.
  5. I encourage you to check out the upcoming webinar featuring James Williams on building big data applications with Spring, Spring XD and Hadoop! This is going to be an awesome talk. James has some killer examples and knows his stuff.
  6. In related news, I put together a quick post on my thoughts on Data Integration, Stream Processing and Spring XD.
  7. Jakub Kubrynski has put together a nice post on how to use load-time weaving to inject dependencies into objects not managed by the Spring container using a couple of different approaches.
  8. Nitin Kumar put together a nice look at Spring Integration, a lightweight approach.
  9. Tomás Lin, who says that he loves testing Grails applications with Spock, put together a great post on how to test with Spring Boot with Spock.
  10. Sometimes, you need to do RMI, and when you do, Spring has you covered!
  11. The BitwiseOR blog has a great post on how to use Spring Boot to build REST services, using Groovy no less! Win! I'm not sure if I agree with the conclusion, but whatever it takes for people to be able to use this to simplify development, it's a win! And, with really great posts like this, hopefully it won't be long at all before everyone's bootstrapping their development, too!