The Spring Framework team has been busy reviewing the issue tracker in anger and reducing the number of opened issues. This was long overdue, with a number of issues being invalid or superseded in the meantime. This helped the team focusing on a more manageable amount of issues and we used the opportunity to look at long standing issues that we haven’t had the time to address yet. In this post, I’d like to walk you through a collection of those relatively small issues, sometimes highly voted, that are finally available in this milestone. Support for escaping property placeholders Property placeholders are a way to replace a property from the environment in an arbitrary String. Assuming that customer.name is set to "John Smith" in the Environment, "Customer ${customer.name}" would resolve to "Customer: John Smith". There are corner cases where you’d like to retain the original value rather than having it resolved. An issue was created in 2008 with quite a bit of votes. Spring Framework 6.2.0-M1 allows you to escape a placeholder using a configurable escape character (backslash by default). Taking our previous example, "Customer ${customer.name}" resolves now to "Customer ${customer.name}". This looks like an innocent change, why did it take us so long to fix it?! It turns out we had to rewrite the parser from scratch, which has other positive side effects: default values are now lazily resolved and the exception message provides the chain of resolutions when resolving nested…Read More