Şu anda Java Spring Boot Uygulamamı Kotlin ile tekrar yazmaya çalışıyorum. Tüm sınıflarımda @Service
ile açıklamalı olan bağımlılık enjeksiyonunun düzgün çalışmadığı bir sorunla karşılaştım (tüm örnekler null
). İşte bir örnek: Java aynı yapmakSpring Boot @Otowired with Kotlin in @Service her zaman sıfır
@Service
@Transactional
open class UserServiceController @Autowired constructor(val dsl: DSLContext, val teamService: TeamService) {
//dsl and teamService are null in all methods
}
sorunsuz çalışır:
@Service
@Transactional
public class UserServiceController
{
private DSLContext dsl;
private TeamService teamService;
@Autowired
public UserServiceController(DSLContext dsl,
TeamService teamService)
{
this.dsl = dsl;
this.teamService = teamService;
}
Ben Kotlin her şeyde @Component
ile bileşen açıklama ise çalışıyor:
@Component
open class UserServiceController @Autowired constructor(val dsl: DSLContext, val teamService: TeamService) {
//dsl and teamService are injected properly
}
Google'ı Kotlin ve denediğim @Autowired
için birçok farklı yaklaşım sağlandı ama hepsi aynı NullPointerException
ile sonuçlandı Kotlin ile Java arasındaki farkın ne olduğunu ve bunu nasıl düzeltebileceğimi bilmek isterim.
Val'i var olarak değiştirmeyi denediniz mi? –
[Nex Pointer Özel Durumunun Bahar Proxy Sınıfı ve Kotlin] 'in olası kopyası (http://stackoverflow.com/questions/37431817/null-pointer-exception-in-spring-proxy-class-and-kotlin) – miensol
Evet ikisini de denedi. – Deutro