You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring如何让Kotlin的Service类变为open?默认Kotlin类是final的

Kotlin中@Transactional注解导致Service类及方法变为open的机制疑问
  • Kotlin的类和方法默认都是final的,但我给Service类里的某个方法加上@Transactional注解后,发现这个Service类和它所有方法都变成open的了。
  • 我清楚@Transactional切面要生效,Service类必须被代理,而代理要求类是open的,这样代理类才能继承原类(Kotlin默认final的特性在《Open Keyword in Kotlin》教程里也有说明)。
  • 根据Spring AOP文档的内容,因为我的Service类继承自抽象类而非接口,所以使用的是CGLIB代理。

我对这个机制有没有误解?它具体是怎么运作的?

@Service
class SomeService(...): SomeAbstractClass(...){
    @Transactional
    fun someMethod(...){...}
}

内容的提问来源于stack exchange,提问作者user12372439

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 11:33:09