我想在micronaut中创建一个方面,用一种通用方法将事件发送到队列,其中包含传递给某些方法的信息,以及来自上下文的一些信息,例如方法参数、方法响应、持续时间、异常、请求头(对于api方法)等,我想在注解中定义应该添加到事件中的数据。我有一个使用spring boot和spel的工作示例:
@Event( <- This is the annotation to create the event
@Detail(key = "salary", value = "#request.salary.toString()"), <- This is the SpEL
@Detail(key = "ipAddress", value = "#HttpServletRequest.getHeader('x-forwarded-for').split(',')[0]"), <- This gets the client ipAddress from the context
@Detail(key = "userAgent", value = "#HttpServletRequest.getHeader('user-agent')"") <- This gets the browser
)
public void MyMethod(RequestInformation request){
}
在上面的示例中,事件仅使用3个属性创建,并以json格式发送到队列
{
details:[
"salary":"6000",
"ipAddress":"180.30.115.62",
"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.2 Safari/605.1.15"
]
}
我知道micronaut不支持spel,因为它在文档中指出: Spring Expression Language (SpEL) - SpEL expressions are not supported, property placeholders are however
我试过阅读有关属性占位符的内容,但大多数示例都与从.yml文件获取值有关。
我想知道是否有一种方法可以在不使用micronaut创建自己的语言的情况下做类似的事情。此外,迁移到spring boot也不是一个选项。
对于如何完成这项任务,我将感谢任何帮助、建议或见解。
暂无答案!
目前还没有任何答案,快来回答吧!