वर्तमान में मैं कोटलिन के साथ अपने जावा स्प्रिंग बूट एप्लिकेशन को फिर से लिखने का प्रयास करता हूं। मुझे एक समस्या का सामना करना पड़ा जो मेरी सभी कक्षाओं में @Service
के साथ एनोटेटेड है, निर्भरता इंजेक्शन सही ढंग से काम नहीं कर रहा है (सभी उदाहरण null
हैं)। यहाँ एक उदाहरण है:स्प्रिंग बूट @ @Service में कोटलिन के साथ आउटपुट हमेशा शून्य
@Service
@Transactional
open class UserServiceController @Autowired constructor(val dsl: DSLContext, val teamService: TeamService) {
//dsl and teamService are null in all methods
}
जावा में एक ही कर बिना किसी समस्या के काम करता है:
@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
}
गूगल कोटलिन और @Autowired
के लिए कई अलग-अलग दृष्टिकोण प्रदान किए जो मैंने कोशिश की लेकिन सभी के परिणामस्वरूप NullPointerException
मैं जानना चाहता हूं कि कोटलिन और जावा के बीच क्या अंतर है और मैं इसे कैसे ठीक कर सकता हूं?
क्या आपने वैल को वैर बदलने की कोशिश की है? –
[स्प्रिंग प्रॉक्सी क्लास और कोटलिन में नल पॉइंटर अपवाद] का संभावित डुप्लिकेट (http://stackoverflow.com/questions/37431817/null-pointer-exception-in-spring-proxy-class-and-kotlin) – miensol
हाँ मैं पहले से ही दोनों की कोशिश की। – Deutro