Avatar ·

Wie verwendet man Spring-Annotationen (@Autowired, @Component) in Kotlin richtig?

Hallo zusammen! Ich habe gerade angefangen, Kotlin zu lernen, und versuche, mein altes Spring-Projekt von Java auf diese Sprache zu migrieren. Dabei bin ich auf ein Problem gestoßen: Spring-Annotationen wie @Autowired funktionieren nicht so, wie ich es von Java gewohnt bin.

In Java habe ich normalerweise Folgendes gemacht:

@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;
    
    public String getUserName(Long id) {
        return userRepository.findById(id).map(User::getName).orElse("Unknown");
    }
}

Als ich dasselbe in Kotlin schreiben wollte:

@Service
class UserService {
    @Autowired
    private lateinit var userRepository: UserRepository
    
    fun getUserName(id: Long): String {
        return userRepository.findById(id).map { it.nam