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
相关产品推荐
相关产品推荐

