Improved Testcontainers Support in Spring Boot 3.1

Engineering | Moritz Halbritter | June 23, 2023 | ...

There's been support for Testcontainers in Spring Boot for some time now, and Spring Boot 3.1 improves it further. But first, let's take a look at what Testcontainers is and how it's usually used.

Testcontainers is an open source framework for providing throwaway, lightweight instances of databases, message brokers, web browsers, or just about anything that can run in a Docker container.

If you have used Testcontainers in the past, there's a high chance that you have been using them in integration tests:

@SpringBootTest
@Testcontainers
class MyIntegrationTests {

    @Container
    static…

Docker Compose Support in Spring Boot 3.1

Engineering | Moritz Halbritter | June 21, 2023 | ...

Docker Compose support in Spring Boot 3.1 builds on top of the ConnectionDetails abstraction, which we've featured in a separate blog post. If you haven't already read it, please do so before reading this post.

Docker Compose "is a tool for defining and running multi-container Docker applications". A Docker Compose configuration file, usually named docker-compose.yaml or compose.yaml, allows you to define services. Such services must have a name and a Docker image. Optionally you can also define environment variables, exposed ports, labels, how services relate to one another, and so on.

Here…

This Week in Spring - June 20th, 2023

Engineering | Josh Long | June 20, 2023 | ...

Hi, Spring fans! Welcome to another installment of This Week in Spring! I'm in Sydney, Australia, talking to customers, koalas, kangaroos, and whoever else will listen! I'll be doing a live presentation, tonight at the Microsoft Reactor here in Sydney. Register now and come join me!

As usual, we've got a ton of stuff to get through so let's dive right into it!

Spring Boot 3.1's ConnectionDetails abstraction

Engineering | Moritz Halbritter | June 19, 2023 | ...

If you've used Spring Boot for a while, you're probably familiar with setting up connection details using properties. For example, you may have used spring.datasource.url to configure a JDBC connection. In Spring Boot 3.1 this continues to work as you'd expect, but we've changed things a bit under the hood to decouple the auto-configurations from the properties.

There's now a new ConnectionDetails abstraction. This interface models the concept of a connection to a remote service. If you take a look at this interface, you'll see that it's empty. It serves as a tagging interface, and is extended by multiple other interfaces which model the connection to a concrete remote service, e.g. RedisConnectionDetails for connections to a Redis server or JdbcConnectionDetails

This Week in Spring - June 13th, 2023

Engineering | Josh Long | June 13, 2023 | ...

This Month in Spring - June 13th, 2023

Hi, Spring fans! Welcome to another installment of This Week in Spring! I am in beautiful Taipei, eating delicious food and meeting amazing people in the sweltering weather. How're you doin'? I've got to join a meeting, so I'll make this quick. One quick thing though: Microsoft's Mark Heckler and I are doing a webinar later today - register now and join us - looking at how to take Spring Boot applications to production on Microsoft Azure and with Microsoft technologies. This is going to be a ton of fun, don't miss it!

Securing Spring Boot Applications With SSL

Engineering | Scott Frederick | June 07, 2023 | ...

Secure Sockets Layer (SSL) and Transport Layer Security (TLS) are key components of securing communications between systems in a layered or service-oriented architecture. Spring Boot applications in such an architecture often accept incoming network connections or create outgoing connections, and developers are tasked with configuring applications to work in such a secure environment.

If you've ever worked with the Java security and SSL APIs, you're probably aware that this is not a particularly fun task. It often involves multiple trips to stackoverflow.com to copy and paste code. There are a…

This Week in Spring - June 6th, 2023

Engineering | Josh Long | June 06, 2023 | ...

Hi, Spring fans! Welcome to another installment of This Week in Spring! And what an insane week it's been! Long story short, I've spent 10-12 hours a day over the last five days migrating a dozen differnet applications and services from one GKE cluster to another, taking the time to update things as much as possible. In the case of at least one Vue.js application, this meant some major reworking of the codebase. It's also meant rewriting lots of Github Actions with the new best-practices and patterns, which I confess has been painful.

Once everything's fully migrated (soon, I hope!), I think a…

Get the Spring newsletter

Stay connected with the Spring newsletter

Subscribe

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all