The Spring Blog

Engineering
Releases
News and Events

Spring Boot for Apache Geode & Pivotal GemFire 1.0.0.M4 Released!

On behalf of the Spring, Apache Geode and Pivotal GemFire communities, I am pleased to announce the release of Spring Boot for Apache Geode & Pivotal GemFire (SBDG) 1.0.0.M4.

Special appreciation goes out to @starbuxman for his invaluable feedback after SpringOne Platform 2018. And, if you have not seen Josh’s Spring Tip video on Apache, please check it out.

What’s New

Among a few minor updates, Milestone 4 adds the following new capabilities:

  • Externalized configuration support with Spring Boot’s Configuration Processor and SBDG provided @ConfigurationProperties classes (Read here for more details). Inside STS or IJ Enterprise addition, developers will have the added convenience of auto-completion and content assist.

  • GemFire/Geode nodes can now be named with the spring.application.name property.

  • The GemFire/Geode Spring Boot starters now include Spring Shell as a runtime dependency, which is convenient when enabling and using GemFire/Geode’s management services.

  • Provided a workaround to an issue in Spring Cloud Commons .

For complete list of changes, see the changelog.

You can acquire the bits from the Spring libs-milestone repository:

Maven
<repositories>
    <repository>
        <id>spring-libs-milestone</id>
        <name>Spring Milestone Maven Repository</name>
        <url>https://repo.spring.io/libs-milestone</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>org.springframework.geode</groupId>
        <artifactId>spring-geode-starter</artifactId>
        <version>1.0.0.M4</version>
    </dependency>
</dependencies>
Gradle
repository {
  maven { url "https://repo.spring.io/libs-milestone" }
}

dependencies {
  compile 'org.springframework.geode:spring-geode-starter:1.0.0.M4'
}

To switch from Apache Geode to Pivotal GemFire simply, change the Spring Boot starter from spring-geode-starter to spring-gemfire-starter.

Read more...

Spring Initializr updates

On behalf of the team and everyone who has contributed, I’m happy to announce that Spring Initializr has been updated and is now available on start.spring.io.

UI changes - listening to your feedback

Following the last revision, the main feedback we received was about the missing list of dependencies. Some community members seemed to be looking at this list for information purposes (not necessarily using the website to generate a new app), while others would just like to see what’s available.

While start.spring.io seems like a very simple service, generating applications with a simple HTML form, there’s much more to it - this round of feedback taught us that we need to double-down on product discovery and user centered design.

Read more...

A Bootiful Podcast: CQRS with AxonIQ's Steven van Beelen and Pivotal's Ben Wilcock

Hi Spring fans! In this week’s installment Josh Long talks to AxonIQ’s Steven van Beelen, lead of the Axon project, and Pivotal’s Ben Wilcock, on CQRS, event-sourcing, event-storming, microservices, Spring Boot and the long camaraderie shared by Axon and Spring.

Read more...

Announcing the first milestone 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...