Класс в kotlin является окончательным по умолчанию, который не совместим при использовании аспекта (Spring AOP).
@ Log - мой аспект, записывает забавные параметры.
Этот кодотлично работает
@Log
open class ConfirmCallbackImp : ConfirmCallback {
override fun confirm(correlationData: CorrelationData?,
ack: Boolean,
cause: String?) {
}
}
@Bean
fun setConfirmCallback(): ConfirmCallback {
return ConfirmCallbackImp()
}
Этот код вызывает исключение
@Bean
fun setConfirmCallback(): ConfirmCallback {
return object : ConfirmCallback {
@Log
override fun confirm(correlationData: CorrelationData?,
ack: Boolean,
cause: String?) {
}
}
}
Исключение: вызвано: java.lang.IllegalArgumentException: Невозможно создать подкласс конечного класса ru. configuration.rbmq.EndpointConfiguration $ setConfirmCallback $ 1