Mostly because of its statefulness and lack of thread safety, since version 3, Spring has added a Formatter
interface as a replacement for PropertyEditor
. The Formatters are intended to provide a similar functionality but in a completely thread-safe manner and focusing on a very specific task of parsing a String in an object type and converting an object to its String representation.
Let's suppose that for our application, we would like to have a Formatter that would take an ISBN number of a book in a String
form and convert it to a Book
entity object. This way, we can define the controller request methods with a Book
argument when the request URL signature only contains an ISBN number or a database ID.