¿Cómo creo un custom data type convertidor?
Los convertidores de tipo de datos pueden implementar Convertidor(preferiblemente) o GenericConverter si uno necesita información de clase en tiempo de ejecución para gobernar la estrategia de conversión. Todo beans de ambos tipos se pasan al conversionService en tiempo de ejecución.
Tenga en cuenta que, aunque Converter es una interfaz funcional, NO es posible definir un bean la implementación como una lambda debido a la eliminación de tipos de las lambdas generadas, por lo tanto, deben ser clases anónimas.
Tenga en cuenta que la estrategia de soporte del Generic Converter no es inherentemente bidireccional, por lo que debe registrar tanto un convertidor String -> Type como un convertidor distinto Type -> String, o registrar un único convertidor que soporte ambas direcciones (y luego derivar la dirección dentro del método de conversión mediante la verificación de tipo del objeto fuente). Además, también es posible especificar un tipo (distinto de string) al acceder a una propiedad, en cuyo caso se invocaría un convertidor entre el tipo de propiedad del otro objeto y el tipo deseado.
Una nota sobre la anulación de convertidores existentes: La interfaz Generic Converter no tiene tipo, por lo tanto, el último cargado bean se registrará uno de mismo nombre. Una buena práctica es nombrar adecuadamente cualquier convertidor en un espacio de nombres (por ejemplo, my Bank Converter frente a date Converter) y restructure el orden de instanciación de la configuración según sea necesario si core Los convertidores deben ser sobreescritos.
La Configuración De Conversión.java La clase de configuración contiene algunos ejemplos de convertidores de tipo registrados que se aplican por defecto.
Para consejos de uso, consulte lo siguiente.unit test casos:
-
Expression Engine Tests para el acceso a propiedades y uso general
-
Spel Tests para ejemplos de bajo nivel de registro de funciones,bean invocación de método h