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.