Spring Boot 3 is about to reach its “end of non-commercial support”. What does that mean for MQ’s support of the Spring Boot environment?
I’ve just released version 3.5.15 of the MQ Spring Boot starter. It will be the final version of this package that is built against Spring Boot 3. There has been a parallel module released for Boot 4 since that version became available at the end of 2025. So Spring have given you a whole 6 months to migrate applications from Boot 3 to 4.
We continue to release the MQ module for Boot 4; it will get updates for newer versions of both MQ and Boot 4. This approach is similar to what happened in the transition from Boot 2 to Boot 3.
The next update to the MQ Boot Starter will pick up the MQ 10 jar files. While it was not a deliberate plan, it feels quite convenient to switch primary Boot versions around the same time as a new MQ LTS release.
MQ Starter source code
The Github repository containing the MQ Boot Starter source code now has Boot 4 as the default model. For example, package names imports use the Boot 4 format instead of Boot 3:
Boot3: org.springframework.boot.autoconfigure.jms
Boot4: org.springframework.boot.jms.autoconfigure
And all the sample programs use Boot 4. That includes the Atomikos-based samples, as a new version of that package also finally appeared at about the right time for incorporation.
But you can still rebuild the MQ Starter yourself from the source tree, if you want to work with newer private versions of Spring Boot 3.
The same source code compiles against all the versions of Spring: scripts executed during the build process do any necessary mangling of names to match the underlying packages and methods. By creating dummy packages for Boot 3 capabilities, the scripts still allow compiling against Boot 2.
The caveat to rebuilding is that newer features of MQ or its Spring integration might not be exposed when using older Boot versions. For example, you can’t use Spring’s SSLBundle configurations with Boot 2.
Github Releases
One minor additional point: the Github repo has “releases” corresponding to releases of the binary jar files sent to Maven Central. The tag for these releases has followed the Boot 3 version (eg 3.5.15); the next release will start to use Boot 4 versions (eg 4.1.0). Which seems like a large jump, but it’s not really.
Manually modifying MQ dependencies
There are ways to override the inbuilt dependency tree for your application. For example, you might want to use the MQ 10 JMS library with Boot 3, without rebuilding the Boot Starter itself.
That can work by explicitly putting the MQ dependency in your app’s build files (eg pom.xml or build.gradle). That should take precedence over the MQ version given by the Boot Starter module.
But this is not something we test for. The MQ developers try to maintain backwards compatibility forever so it ought to work . But there are no guarantees that it will work inside Spring. You’d have to check it. yourself.
Summary
This follows the pattern of enablement that we established in the migration from Boot 2 to Boot 3. For a period the MQ Boot Starter will just be available and maintained for Boot 4. At some point, I assume, we’ll need to repeat the process for a hypothetical Boot 5.