Skip to content

Spring Boot 1.3.0 M3 Release Notes

Stéphane Nicoll edited this page Aug 11, 2015 · 19 revisions

Spring Boot 1.3.0 M3 Release Notes

For changes in earlier milestones, please refer to:

Upgrading from Spring Boot 1.3.0 M2

See instructions in the 1.3.0.M2 release notes for upgrading from 1.3.0 M2

Property renames

The following application.properties keys have been renamed to improve consistency:

  • servet.tomcat.accessLogEnabled to server.tomcat.accesslog.enabled

  • servet.tomcat.accessLogPattern to server.tomcat.accesslog.pattern

  • servet.undertow.accessLogDir to server.undertow.accesslog.dir

  • servet.undertow.accessLogEnabled to server.undertow.accesslog.enabled

  • servet.undertow.accessLogPattern to server.undertow.accesslog.pattern

Gradle

The Spring Boot Gradle plugin will no longer apply Gradle’s application plugin by default. If you wish to make use of the application plugin you will have to apply it in your build.gradle.

If you do not need the functionality provided by the application plugin, but were using its mainClassName or applicationDefaultJvmArgs properties then you will need to make some minor updates to your build.gradle.

The mainClassName property should now be configured on the springBoot extension, for example:

springBoot {
    mainClassName = 'com.example.YourApplication'
}

applicationDefaultJvmArgs should now be configured in your project’s ext block, for example:

ext {
    applicationDefaultJvmArgs = [ '-Dcom.example.property=true' ]
}

If you were configuring your project’s main class using the main property of the application plugin’s run task, you should move this configuration to the bootRun task instead:

bootRun {
    main = com.example.YourApplication
}

New and Noteworthy

Tip
Check the configuration changelog for a complete overview of the changes in configuration.

Spring Boot CLI

The CLI will now use the repositories configured in Maven’s settings.xml during dependency resolution. For a repository to be used, the profile in which it is declared must be active.

Embedded MongoDB

Auto-configuration for Embedded MongoDB has been added. A dependency on de.flapdoodle.embed:de.flapdoodle.embed.mongo is all that’s necessary to get started. Configuration, such as the version of Mongo to use, can be controlled via application.properties. Please see the documentation for further information.

H2 Web Console

Auto-configuration for H2’s web console has been added. When you are using Spring Boot’s developer tools, adding a dependency on com.h2database:h2 to your web application is all that is necessary to get started. Please see the documentation for further information.

Logging

The console and file logging patterns can now be specified as regular properties (that is logging.pattern.console and logging.pattern.file respectively).

Tomcat access logs have better customizations: the directory and file prefix/suffix can now be customized via configuration.

If you are using logback or log4j2, we now include information about the location from which each class in a stack trace was loaded (this can be customized via logging.exception-conversion-word). We also changed the default logback configuration so that it logs the root cause first.

Finally, we have improved Log4J 2’s default output to be similar to the output produced by Logback.

Messaging

Both JMS and Rabbit endpoints can be easily disabled via configuration. The default container factory that is created if none exists can also be customized via configuration. Check the new properties for spring.jms and spring.rabbitmq for more details.

Meta-data

The META-INF/spring-configuration-metadata.json file format has been updated to support a new deprecation attribute per property element that defines the reason for the deprecation and a replacement key, if any. Such information can be provided by adding @DeprecatedConfigurationProperty on the getter of the property.

We’ve also improved the detection of default value: if a property is initialized via a method call having a single argument, we consider said argument to be the default value (i.e. Charset.forName("UTF-8") would detect UTF-8 as the default value).

A new spring-boot-configuration-metadata module is now available for any tool developers willing to leverage the configuration meta-data: it offers an API to read the meta-data and build a repository out of it.

Health indicators

It is now possible to easily disable the default health indicators via the management.health.defaults.enabled property.

TODO

  • Auto-config

    • Unconditional auto-configuration in report (#2209)

    • Exclude auto-config via properties (#2435)

    • Auto-configure @EnableConfigurationProperties (#2457)

    • Selective import of auto-configuration (#3660)

  • Devtools

    • Persistent session across restart (#2490)

    • Change outside classpath to trigger livereload (#3469)

  • Compression (excludeUserAgent #3363)

Clone this wiki locally