在 @Service 中使用 Kotlin 的 Spring Boot @Autowired始终为 null
2022-09-01 23:14:01
目前,我尝试用 Kotlin 重写我的 Java Spring Boot Application。我遇到了一个问题,在我的所有使用依赖关系注入进行注释的类中都无法正常工作(所有实例都是)。下面是一个示例:@Service
null
@Service
@Transactional
open class UserServiceController @Autowired constructor(val dsl: DSLContext, val teamService: TeamService) {
//dsl and teamService are null in all methods
}
在Java中做同样的事情可以毫无问题地工作:
@Service
@Transactional
public class UserServiceController
{
private DSLContext dsl;
private TeamService teamService;
@Autowired
public UserServiceController(DSLContext dsl,
TeamService teamService)
{
this.dsl = dsl;
this.teamService = teamService;
}
如果我在 Kotlin 中注释组件,一切正常:@Component
@Component
open class UserServiceController @Autowired constructor(val dsl: DSLContext, val teamService: TeamService) {
//dsl and teamService are injected properly
}
Google为Kotlin提供了许多不同的方法,我尝试过,但结果都是一样的,我想知道Kotlin和Java之间的区别是什么,以及我如何解决这个问题?@Autowired
NullPointerException