我已经创建了一个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]
,根据上面的配置,这是正确的。
我做错了什么?谢谢你帮忙。
配置中自定义语法背后的动机是什么?如果您只使用标准的CRON语法,Micronaut就可以完美地使用它:
clean:
cron: 0 0 1 * * SUN
我尝试了以下文章中描述的步骤 或者和这篇GitHub帖子一样 这对我不起作用。 我也读到这种方法:看这里,但这不是我在寻找的 我如何定制我的库,使Micronaut能够直接在我的项目中创建和注入它的bean?
我有一个控制器方法,它接受一个POJO。 如果我将它作为常规依赖项添加到控制器中,它将被加载(这并不奇怪),但仍然没有被使用。我是不是漏掉了一步?
我想创建我自己的地图减少工作。 map类的输出是:文本(键)、文本(值) reduce类的输出是:文本,不可扭曲 我试图通过以下方式实现它: 当我尝试运行它时,它会显示以下输出并终止 错误的课程从哪里来? 和 工作失败的原因 我不明白哪里出了问题。任何帮助
有什么建议吗?