Tag: 知名度

当被Spring代理类访问时,Kotlin实例变量为null

我有一个由Spring代理的服务类,如下所示: @Service @Transactional open class MyService { … } 如果我删除了open修饰符,Spring会抱怨它需要代理这个类来应用@Transactional注解调整。 但是,当在代理服务上调用一个函数时会导致问题,该代理服务试图访问一个变量: @Service @Transactional open class MyService { protected val internalVariable = … fun doWork() { internalVariable.execute() // NullPointerException } } internalVariable作为其声明的一部分进行分配,没有任何注释(如@Autowired等),并且当我删除 @Transactional注释和Spring代理类的要求时工作正常 。 为什么当Spring代理/继承我的服务类时,这个变量为null?