当前位置: 首页 > 知识库问答 >
问题:

如何让Micronaut使用自定义的TypeConverter从Map到String?

夔庆
2023-03-14

我已经创建了一个MicronauttypeConverter(在Kotlin中)来将映射转换为cron字符串,用于@dischedure,但是我无法让Micronaut进行转换。

作为一个示例,我希望支持以下配置:

clean:
  cron:
    every: SUN
    at: 01:00:00
@Singleton
class MapToCron : TypeConverter<Map<String, String>, String>

我还创建了一个@PropertiesConfiguration类,将这个属性定义为一个字符串(我想这是告诉Micronaut该属性实际上是什么类型所必需的),并将它注入到一个bean中,以确保使用了所有内容(只是为了确保,它没有什么不同)。

@ConfigurationProperties("clean")
class CleanConfiguration {
    var cron: String? = null
}

这:@dischedure(cron=“\${clean.cron}”)导致无法解析占位符${clean.cron}

为了显示配置确实被选中,并且所有内容都连接在一起,@dischedure(cron=“\${clean.cron.every}”)导致无效cron表达式[SUN],根据上面的配置,这是正确的。

我做错了什么?谢谢你帮忙。

共有1个答案

沙海
2023-03-14

配置中自定义语法背后的动机是什么?如果您只使用标准的CRON语法,Micronaut就可以完美地使用它:

clean:
  cron: 0 0 1 * * SUN
 类似资料: