I am pleased to announce that Spring Boot 1.2.0 has been released and is available from repo.spring.io and Maven Central. This release adds a significant number of new features and improvements over 1.1 and is a recommended upgrade for all users. For upgrade instructions and "new and noteworthy" features please see the release notes.
Here are some of the highlights of this release:
Spring Boot now uses Servlet 3.1 when running with an embedded servlet container. Tomcat 8, Jetty 9 and Undertow 1.1 are all supported options. In addition, WebSocket support has been improved and is now automatically configured for all supported servers. If you need to stick to Servlet 3.0, Tomcat 7 and Jetty 8 are still supported.
If you find yourself typing
@ComponentScan whenever you start a new Spring Boot application, you might like the new
@SpringBootApplication annotation. You can use it as a quick alternative for those three annotations and save yourself some typing. It works particularly well if you structure your code as we recommend in the reference documentation.
JTA Support and Java EE
Spring Boot 1.2 now supports distributed JTA transactions across multiple XA resources using either an Atomikos or Bitronix embedded transaction manager. JTA transactions are also supported when deploying to a suitable Java EE Application Server.
Jackson configuration has been greatly improved with Spring Boot 1.2. You can now configure most Jackson options from your
application.properties file. See this excellent blog post from Sébastien Deleuze for more background on Spring's general support for Jackson.
Spring 4.1 introduced some nice enhancements to its JMS support and you can now use these seamlessly from Spring Boot. The
@EnableJms annotation is also auto-configured whenever you have
spring-jms.jar on your classpath.
There have been lots of updates to the actuator module with Spring Boot 1.2. We now provide additional metrics (including DataSource metrics, Tomcat session metrics and improved System metrics). There is also better integration with the Dropwizard "Metrics" library.
/health endpoint has been improved to provide DataSource and disk space monitoring. It is also more secure now and won't expose so much information on an unauthenticated connection.
spring CLI tool has been improved with a couple of new commands. You can now type
spring init to use the start.spring.io service. For example:
$ spring init -d=web myapp.zip
Will download a zip containing a basic Spring Boot web application.
The CLI also now supports extensions. You can
spring install <maven coordinates> to add extensions from a Maven repository.
Despite adding more auto-configuration, Spring Boot 1.2 should actually be slightly faster than 1.1. We've tried to optimize the code-base as much as possible and do lots of little tricks to make the startup time as fast as possible. The Tomcat sample application starts in well under 3 seconds on most machines.
Numerous other changes
We've made many other small improvements and enhancements for Spring Boot 1.2. There is better JNDI support, enhanced banner support, support for "Spring Cloud Connectors", improved Spring MVC defaults and a new email "starter POM". Additionally, support for third-party libraries has been extended to cover Log4J2, GSON and Jersey. For a complete list of the changes please refer to the release notes and the updated reference guide.
Thanks again to everyone that continues to support and contribute to Spring Boot. Many of the enhancements in this release were contributed or driven by the community. Please keep up the good work and continue to raise issues and pull requests!