使用 Spring 依赖注入的自定义转换器

2023-12-07

有没有一种方法可以在 Dozer 中定义自定义转换器,用于将一种顶级类型转换为另一种顶级类型,而另一种类型本身就是一个 Spring bean,因此可以注入其依赖项?

dozer 文档建议添加以下 XML 定义:

  <converter type="org.dozer.converters.TestCustomConverter" >
    <class-a>org.dozer.vo.CustomDoubleObject</class-a>
    <class-b>java.lang.Double</class-b>
  </converter>

不幸的是,这会导致 Dozer 实例化org.dozer.converters.TestCustomConverter直接,这将跳过依赖注入。有没有办法引用 Spring bean?


在前面的答案中的 CustomConverterWithIds 旁边,还可以注入自定义转换器来覆盖映射文件的配置部分中定义的转换器。这样,推土机将使用注入的转换器,而不是使用默认构造函数实例化转换器。

<bean id="dozerMapper" class="org.dozer.DozerBeanMapper" scope="singleton">
    <property name="mappingFiles">
        <list>
            <value><mapping-file-name1></value>
            <value><mapping-file-name2></value>
        </list> 
    </property>
    <property name="customConverters">
        <list>
            <ref bean="entityConverter"/>
        </list>
    </property>
</bean>

<configuration>
   <custom-converters>
     <converter type="my.domain.EntityConverter">
        <class-a>java.lang.Integer</class-a>
        <class-b>my.domain.MyEntity</class-b>
     </converter>
   <custom-converters>
</configuration>

<beans   .... >
   <bean id="entityConverter" class="my.domain.EntityConverter">
        <property ....
   </bean
</beans>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Spring 依赖注入的自定义转换器 的相关文章

随机推荐

  • {React Native} Async\Await 无法与 setState 正常工作

    有人可以帮助我理解我没有做正确的事情吗 考虑这个简单的代码 var images const funImage setFunImage useState Some function that does this below firebase
  • jBoss 4.0.2 多次部署相同的 WAR 会导致 jBoss 由于 PermGem/Out-of-Memory 错误而崩溃

    我开发 Web 应用程序并使用 jBoss 4 0 2 当我使用 eclipse 多次重新部署 WAR 时 jBoss 将崩溃 因为它耗尽了内存 当我必须将新版本安装到生产环境时 它将消耗生产服务器内存 这意味着我必须停止 jBoss 以防
  • 在 R 中打开 .bcp 文件

    我一直在尝试将 bcp 文件格式的英国慈善委员会数据转换为 csv 文件格式 然后可以将其读入 R 中 我所指的数据可在此处获取 http data charitycommission gov uk 我想做的是将这些 bcp 文件转换为可用
  • System.TypeAccessException:尝试通过方法“X”访问类型“Y”失败

    好吧 我已经用谷歌搜索了近两天 并且尝试了几乎所有与此错误相关的解决方案 但没有任何效果 大多数问题都是关于 Click once 应用程序 JSON Web 应用程序等的安全设置 但对于普通的旧 winforms 应用程序来说却没有任何问
  • 如何从字符串中删除所有双空格

    我试图从字符串中删除所有双空格 以便只保留单个空格 while doublespace 1 kstring replace doublespace 1 doublespace kstring find first of 它找到第一个双空格
  • 如何将项目数组移动/旋转到 JavaScript 数组中的特定索引?

    我有一个 jQuery 元素 图像 集合 var images img 我想更改集合 使其从特定索引开始 并将前面的项目附加到末尾 有点像Rolodex 如果需要的话 我还可以将它们转换为数组 使用 JavaScript 数组的示例 var
  • 使用 ColdFusion 中的列表调用 .NET 方法时未找到方法

    对于某些背景 这与将 IEnumerable 变量从 ColdFusion 传递到 NET 我已将代码更改为使用列表 并取得了进展 但在使用 NET 和 ColdFusion 的简单数据类型以外的任何内容时 仍然遇到障碍 这是当前的问题 首
  • 是否可以从全局或设备函数调用 CUDA CUBLAS 函数

    我正在尝试并行化现有应用程序 我已将大部分应用程序并行化并在 GPU 上运行 但我在将一个函数迁移到 GPU 时遇到问题 该函数使用 blas 库的函数 dtrsv 见下文 void dtrsv call N double B double
  • 在运行时使用 ref 参数创建 C# 委托类型

    我需要创建一个委托类型ref运行时参数 如果我在编译时知道参数类型 我可以使用显式委托类型声明 例如 S is some struct value type e g int or Guid delegate void VoidDelSRef
  • Kendo UI Angular:(SystemJS) 意外标记 <

    我在使用 IIS 的 ASP NET Core 解决方案上使用 VS2015 RC3 Angular2 2 0 0 每当我尝试添加新的 UI 模块 例如下拉列表或输入 时 我都会收到 SystemJS 错误 但奇怪的是我的按钮可以正常工作
  • 使用 VBA 更新 Excel 切片器选择的性能较差

    我正在使用 VBA 模拟单击 Excel 切片器 但遇到了严重的性能问题 用户单击 X 轴上带有日期的柱形图 单击某列时 会在包含日期列表的切片器中选择相应的日期 该列表将随着时间的推移而不断增长 据我所知 为非 OLAP 数据源 我的情况
  • 带圆角的矩形旋转器

    我正在尝试制作加载程序 它看起来像这样 CodePen 但我需要有圆形边框和矩形 而不是盒子 这样我就可以将我们公司的标志放置到装载机上 我尝试再制作一层 这将制作内联半径和包装器 我设置border radius and overflow
  • 将 Datagridview 值更新到数据库中

    我正在开发一个表单应用程序 用户可以从数据库获取表数据 进入可编辑的 gridviewcontrol 以便用户可以更新网格中的一些数据 当用户单击表单上的更新按钮时 更新的数据网格值应该在数据库中更新 用户可以一次更新更多列值 我第一次在数
  • MySQL 错误 1060:重复的列名 ALTER TABLE

    由于我没有创建的代码中的错误 我在查询时遇到了一些问题 query this gt db gt query ALTER TABLE DB PREFIX customer ADD customer type TINYINT 1 NOT NUL
  • Django时区感知DateTimeField默认值时区感知错误

    我正在尝试将 DateTimeField 添加到我的 django 模型中 并以最大时间戳作为默认值 我已经弄清楚 Django 中的最大时间戳是 9999 12 31 23 59 59 与我的 postgres 数据库中使用的最大时间戳不
  • 内存通常比磁盘快多少?

    IDE SCSI SSD SATA 或所有这些 我很惊讶 本文中间的图3 大数据的病理学 表示进行顺序访问时内存仅快 6 倍左右 内存为 350 Mvalues sec 而磁盘为 58 Mvalues sec 但当您进行随机访问时 速度大约
  • std::enable_if 如何工作?

    我刚刚问了这个问题 std numeric limits 作为条件 我明白用法在哪里std enable if将有条件地定义方法的返回类型 导致该方法无法编译 template
  • 按 Column.DisplayMember 对 DataGridView 进行排序

    我有一个DataGridView有几个DataGridViewComboBoxColumn实际值与 ID 相关联 但DisplayMember是查找表中的字符串对应项 我试图做到这一点 以便当我按该列排序时 排序是根据DisplayMemb
  • 适用于 SUN Solaris 和 linux 的 awk + ​​fit 语法

    需要以下方面的帮助 当我在 Linux 上运行以下命令时 它运行良好 awk v NAME MACHINE 1 NAME etc hosts 但在 SUN Solaris 上我得到以下信息 awk v NAME MACHINE 1 NAME
  • 使用 Spring 依赖注入的自定义转换器

    有没有一种方法可以在 Dozer 中定义自定义转换器 用于将一种顶级类型转换为另一种顶级类型 而另一种类型本身就是一个 Spring bean 因此可以注入其依赖项 dozer 文档建议添加以下 XML 定义