The Spring Blog

Engineering
Releases
News and Events

Announcing General Availability of Spring Cloud Function - 2.1.0.M1

We are pleased to announce first milestone of the Spring Cloud Function - 2.1.0.M1.

Individual modules of Spring Cloud Function 2.1.0.M1 are available for use in the Spring Milestone repository.
This release encompasses the following:

  • Some of the features that has always been available in bean factory based function catalog are now part of the functional form (see Dave Syer’s blog for more details on functional form) :
    • Multiple endpoint support - ability to map multiple HTTP endpoints the same way one would expect in conventional context configuration.
    • Function composition - ability to compose function (e.g., foo|bar or foo,bar).
  • Ability to communicate and retain meta-information via Message headers for cases where Message function is composed with non-Message (e.g., Function<Message<?>>, Message<?>> is composed with Function<?, ?>).
  • Support for implicit function composition where catalog.lookup(""), catalog.lookup("|"), catalog.lookup("foo|") or catalog.lookup("|bar") are all valid lookups providing container with enough information to determine your intentions. For example, empty string simply implies there is only one Function in catalog and no explicit name should be provided.
  • Creating Supplier from remote HTTP endpoint where one can define the sink url (destination) and the source url (source) and use the app as a pipeline for events from/to HTTP.
  • AWS Custom Runtime feature.
  • Other minor enhancements and bug-fixes.
Read more...

This Week in Spring - March 19th, 2019

Hi Spring fans! Welcome to another installment of This Week in Spring! What a wild and wonderful week of Spring it’s been! This week I’m in London, UK for the epic SpringOne Tour event and customer visits, then I’m off to Vienna, Austria and then I’m off to Amsterdam, NL for the SpringOne Tour event there. If you’re in any of these places please say hi!

Read more...

Spring Cloud Data Flow 2.0.1 GA Released

The Spring Cloud Data Flow team is pleased to announce the release of 2.0.1 GA of Data Flow. Follow the Getting Started guides for running on Local, Cloud Foundry, and Kubernetes.

This is a minor release with mostly bug fixes and documentation enhancements.

Here are the highlights of this release:

  • Kubernetes deployment configuration for Skipper server is now backed by MySQL as the default database.

  • Remove extraneous Spring Data Redis dependency to fix Spring Cloud Data Flow server health check.

  • Improved Getting Started documentation.

  • Bug fixes on Spring Cloud Data Flow and Spring Cloud Data Flow UI.

  • All the out-of-the-box stream apps from the Documentation examples now use Einstein SR2.

Read more...

A Bootiful Podcast: Spring Security engineer and OAuth slayer Joe Grandja

Hi Spring fans! Welcome to another installment of a Bootiful Podcast! This week Josh Long (@starbuxman) talks to Joe Grandja (@joegrandja) who, not coincidentally, just celebrated his third anniversary working on the Spring team! Joe has been instrumental in building Spring Security 5.x and its OAuth client and resource-server support.

Joe’s team page
Joe on Twitter
Joe just celebrated his third year on the team!

Read more...

Lazy Initialization in Spring Boot 2.2

The recently announced first milestone of Spring Boot 2.2 introduces support for lazy initialization. This post describes the new functionality and explains how and when to enable it.

What Does it Mean to be Lazy?

Spring Framework has had support for lazy bean initialization since before its source code moved to Git 11 years ago. By default, when an application context is being refreshed, every bean in the context is created and its dependencies are injected. By contrast, when a bean definition is configured to be initialized lazily it will not be created and its dependencies will not be injected until it’s needed.

Read more...

This Week in Spring - March 12th, 2019

Hi Spring fans! What a week! I’m in Seattle, Washington where I’ve been spending time with Pivotal partner Microsoft talking about all things Spring, Cloud Foundry and Azure, and then tonight I spoke at the Seattle Java User Group on Reactive Spring.

Tomorrow morning I’m off to jolie Montreal, Canada for the epic ConFoo conference. Are you going to be around? Say hi!.

Anyway, without further ado let’s get to this week’s roundup!

Read more...

Memory footprint of the JVM

The JVM can be a complex beast. Thankfully, much of that complexity is under the hood, and we as application developers and deployers often don’t have to worry about it too much. With the rise of container-based deployment strategies, one area of complexity that needs some attention is the JVM’s memory footprint.

Two kinds of memory

The JVM divides its memory into two main categories: heap memory and non-heap memory. Heap memory is the part with which people are typically the most familiar. It’s where objects that are created by the application are stored. They remain there until they are no longer referenced and are garbage collected. Typically, the amount of heap that an application is using will fluctuate as a function of the current load.

Read more...

Spring Boot 2.2 M1

On behalf of the team and everyone that contributed, I am pleased to announce that the first milestone of Spring Boot 2.2 has been released and is available from our milestone repository. This release closes over 140 issues and pull requests.

Highlights of this first milestone include:

  • Spring Data Moore M2
  • Significantly faster binding of large numbers of configuration properties
  • Opt-in support for lazy bean initialization (there will be more on this in a subsequent blog post)
  • JMX is now disabled by default
  • Numerous dependency upgrades
  • Faster startup and lower memory footprint when using the Actuator
Read more...

A Bootiful Podcast: Matt Raible and James Ward at Devnexus 2019

Hi Spring fans! In this extra-long installment I talk with longtime friends and fellow developer advocates, Okta’s Matt Raible and Google’s James Ward. We talked about Java, Kotlin, Spring, cloud computing technologies, security, Go, paradigm changes, web frameworks past and present, Macromedia, Adobe, Scala, and a million more things! This was a ton of fun for me so I’m hoping you’ll enjoy it too.

Google Developer Advocate James Ward on Twitter (@_jamesward)
Okta Developer Advocate Matt Raible on Twitter (@mraible)

Read more...