36.4. 直接实现类型转换
概述 复制链接链接已复制到粘贴板!
通常,实现类型转换器的建议方法是使用注解的类,如上一节中所述,第 36.3 节 “使用 Annotations 实现类型转换器”。但是,如果要完全控制类型转换器,您可以实施自定义 worker 类型转换器,直接将其添加到类型转换器 registry 中,如下所述。
实施 TypeConverter 接口 复制链接链接已复制到粘贴板!
要实现自己的类型转换器类,请定义一个实施 TypeConverter
接口的类。例如,以下 MyOrderTypeConverter
类将整数值转换为 MyOrder
对象,其中整数值用于初始化 MyOrder
对象中的顺序 ID。
将类型转换器添加到 registry 复制链接链接已复制到粘贴板!
您可以使用类似如下的代码将自定义类型转换器 直接添加到 类型转换器 registry 中:
// Add the custom type converter to the type converter registry context.getTypeConverterRegistry().addTypeConverter(MyOrder.class, String.class, new MyOrderTypeConverter());
// Add the custom type converter to the type converter registry
context.getTypeConverterRegistry().addTypeConverter(MyOrder.class, String.class, new MyOrderTypeConverter());
其中 上下文是
当前的 org.apache.camel.CamelContext
实例。addTypeConverter()
方法根据特定类型转换注册 MyOrderTypeConverter
类,从 String.class
到 MyOrder.class
。
您可以将自定义类型转换器添加到 Camel 应用程序,而无需使用 META-INF
文件。如果您使用 Spring 或 Blueprint,则可以只声明一个 <bean>。CamelContext 自动发现 Bean 并添加转换器。
<bean id="myOrderTypeConverters" class="..."/> <camelContext> ... </camelContext>
<bean id="myOrderTypeConverters" class="..."/>
<camelContext>
...
</camelContext>
如果您有更多类,您可以声明多个 <bean>s。