Cómo usar correctamente las anotaciones Spring (@Autowired, @Component) en Kotlin?
¡Hola a todos! Acabo de empezar a aprender Kotlin y estoy intentando migrar mi proyecto antiguo en Spring de Java a este lenguaje. Me encontré con un problema: las anotaciones Spring, como @Autowired, no funcionan como estaba acostumbrado en Java.
En Java solía hacerlo así:
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public String getUserName(Long id) {
return userRepository.findById(id).map(User::getName).orElse("Unknown");
}
}
Cuando intenté escribir lo mismo en Kotlin:
@Service
class UserService {
@Autowired
private lateinit var userRepository: UserRepository
fun getUserName(id: Long): String {
return userRepository.findById(id).map { it.name }.orElse("Unknown")
}
}
El compilador se queja de lateinit var (supuestamente el campo debe ser nullable o estar inicializado), y la aplicación falla con NullPointerException.
No answers yet.
Inicia sesión para dejar una respuesta