Showing posts with label spring mvc interview questions. Show all posts
Showing posts with label spring mvc interview questions. Show all posts

Thursday, February 18, 2021

Java spring interview questions and answers - Creak Java Interview

1. What is Tight Coupling?

जब एक वर्ग (ClassA) दूसरे वर्ग की वस्तु (ClassB) पर निर्भर होता है, तो हम कहते हैं कि ClassA "कसकर"(
"tightly" Coupled) ClassB के साथ युग्मित है।

 स्प्रिंग हमें इस तरह से कक्षाएं बनाने में मदद करता है जिससे टाइट कपलिंग को हटाया जा सके और लूज कपलिंग को किया जा सके।

2. What is Loose Coupling?

लूज कपलिंग किसी क्लास (क्लासए) पर किसी ऑब्जेक्ट (क्लासबी) की निर्भरता को हटा देता है।
 

Loose Coupling एक अंतरफलक और एक सेटर और गेट्टर विधि बनाकर, या एक कंस्ट्रक्टर का उपयोग करके किया जाता है जो इंटरफ़ेस ऑब्जेक्ट लेता है।

Java spring interview questions and answers in hindi
Java spring interview questions and answers


3. What are Beans in Spring?

जब @Component का उपयोग करके किसी class को एनोटेट या सजाया जाता है, तो ऐसी कक्षा को स्प्रिंग में बीन कहा जाता है। बीन्स का रख-रखाव एप्लिकेशन के संदर्भ में किया जाता है।



spring interview questions 4)  Explain Bean creation process?

बीन निर्माण की प्रक्रिया में निम्नलिखित चरण होते हैं

(i) एक वर्ग (c1) से शुरू होता है, जिसमें एनोटेशन @Component है।

(ii) जाँचता है कि component annotated class (c1) निर्भर है या नहीं।

(iii) यदि हाँ, तो स्प्रिंग उस वर्ग (c2) के लिए भी सेम बनाएगा।

(iv) @Autowired एनोटेशन और कंस्ट्रक्टर (c2) या डिफॉल्ट केस setClass Function (इंटरफेस द इंटरफेस) के माध्यम से दो वर्गों (c1 और c2) के बीच एक कनेक्शन या ऑटोवेयरिंग होगी।

5. What is the importance of the annotation @Primary

इस एनोटेशन का उपयोग उस वर्ग पर किया जाता है जिसे प्राथमिक आधार पर वसंत द्वारा लिया जाना चाहिए। 

उदाहरण के लिए, यदि ClassX @Component एनोटेट है और Class1 और Class2 (दोनों @Component एनोटेट) पर निर्भर है, 

तो कंपाइलर एक त्रुटि की रिपोर्ट करेगा। Class1 और Class2 के बीच प्राथमिक वर्ग दिखाने के लिए हम @Primary का उपयोग करते हैं।


6. What is Dependency Injection?

निर्भरता इंजेक्शन वह जगह है जहां वसंत सेम के लिए खोज करता है; एक बार उपयुक्त बीन मिल जाने के बाद, यह बीन को आश्रित वर्ग को सौंप देता है।

 डिपेंडेंसी इंजेक्शन वह प्रक्रिया है जहां स्प्रिंग फ्रेम बीन्स की तलाश करता है और निर्भरता की पहचान करता है, और बीन्स के उदाहरणों को बनाता है और उन्हें ऑटो करता है।

7. Explain Inversion of Control (IOC) for spring boot interview questions purpose.

टाइट कपलिंग में आश्रित वर्ग अपनी निर्भरता बनाने की जिम्मेदारी लेता है। जबकि, लूज कपलिंग में, हम निर्भरता वर्ग (या संदर्भ) पर @Autowired एनोटेशन का उपयोग करते हैं और स्प्रिंग इंस्टेंस बनाने का नियंत्रण लेता है और निर्भरता को इंजेक्ट करता है।

8. What are the roles of an IOC (Inversion of Control) Container?

IOC कंटेनर निम्नलिखित बातें करता है-

 (i) बीन्स का पता लगाएं

(ii) उनकी निर्भरता की पहचान करें और निर्भरता को तार दें

(iii) बीन का निर्माण (
creation, processing, and destruction))


9. What is Application Context for spring interview questions ?

यह IOC कंटेनर का उन्नत संस्करण है। यह बीन फैक्ट्री की सभी कार्यात्मकता प्रदान करता है और एओपी, अंतर्राष्ट्रीयकरण क्षमताओं, वेब अनुप्रयोग संदर्भ (अनुरोध, सत्र, आदि) जैसी चीजें भी प्रदान करता है।

10. Explain the process of creating an ApplicationContext in Spring.

ApplicationContext को दो तरीकों से परिभाषित किया जा सकता है

 (i) XML का उपयोग करके,

 (ii) @Configuration का उपयोग करके। एक बार कॉन्फ़िगरेशन ऊपर बताए गए किसी भी तरीके से किया जाता है, तो ApplicationContext नए ClassPathXmlApplicationContext का उपयोग करके बनाया जाता है। ClassPathXmlApplicationContext XML फ़ाइलों के लिए दिखता है, इसका उपयोग करना दो तरीकों में से एक है। दूसरा तरीका AnnotationConfigApplicationContext का उपयोग करना है।

11. Explain Component Scan For java spring interview questions.

घटक (Component) स्कैन स्प्रिंग-प्रबंधित घटकों का पता लगाने के लिए स्प्रिंग से पूछने का एक तरीका है, इस खोज का इनपुट पैकेज है। घटक स्कैन को परिभाषित करने के लिए दो विधियाँ उपलब्ध हैं-

(i) जावा विन्यास; जिसमें, हम @Component एनोटेशन का उपयोग करते हैं, जिसके लिए हम सभी पैकेज निर्दिष्ट करते हैं, जिसके लिए स्प्रिंग खोज करता है।

(ii) XML कॉन्फ़िगरेशन- हम

<context:component-scan base-package=”com.demo.compscanex”/>


12. How do you perform the same (above question) in Spring Boot?

स्प्रिंग बूट में स्कैन करने के लिए उपयोग किया जाने वाला एनोटेशन @SpringBootApplication है। 

किसी वर्ग पर यह एनोटेशन स्वचालित रूप से उस पैकेज पर घटक स्कैन आरंभ करेगा जहां वे हैं।

13. Differentiate @Component, @Repository and @Service and @Controller?

आमतौर पर एक वेब एप्लिकेशन को कंट्रोलर (जो क्लाइंट संचार का प्रारंभिक बिंदु है), व्यवसाय (जहां एप्लिकेशन का वास्तविक कोड या तर्क लिखा जाता है) और DAO (जहां डेटाबेस कनेक्शन और इंटरैक्शन होता है) जैसी परतों में विकसित किया जाता है।

 इस तरह के आर्किटेक्चर वेब एप्लिकेशन में, किसी भी लेयर में @Component का उपयोग किया जा सकता है।

 जबकि, नियंत्रक / वेब layers में @Controller का उपयोग किया जाता है। @Service का उपयोग व्यावसायिक परत में किया जाता है और @Repository का उपयोग DAO परत में किया जाता है।

14. List out the different scopes of Bean.

(i)  Singleton: पूरे वसंत संदर्भ में केवल एक उदाहरण बनाया जाता है।

(ii) Prototype: जब भी अनुरोध किया जाता है तो एक नया बीन बनाया जाता है।

(iii)  Request: हर HTTP अनुरोध एक बीन बनाता है।

(iv)
Session: हर HTTP सत्र के लिए एक सेम।

15. List out the types of Dependency Injection For spring interview questions and answers.

निर्भरता इंजेक्शन के प्रकार-

(i) सेटर इंजेक्शन और (ii) कंस्ट्रक्टर इंजेक्शन।

16. What is the difference between the Configuration types XML and Annotation in java spring?


ये कॉन्फ़िगरेशन सेट करने के दो तरीके हैं, और वे इस तरह से प्रदर्शन करते हैं। हालाँकि, जब एनोटेशन दृष्टिकोण (
approach ) को बहुत कम मात्रा में लिया जाता है तो कोड लिखा जाता है और परिणाम XML दृष्टिकोण की तुलना में समान होगा।

spring boot interview questions and answers 17. List out the ways Autowiring is done.

(i) byType
(ii) byName
(iii) Constructor (same as byType, but through constructor)

आप यह भी पसंद कर सकते हैं: शीर्ष 5 कौशल जो आपको एक निश्चित शॉट प्रोग्रामर बनाते हैं

18. What is Dirty Read in Java spring?

जब एक लेनदेन (t1) किसी अन्य लेनदेन (t2) द्वारा किए गए परिवर्तनों को पढ़ने के लिए होता है और बशर्ते लेनदेन t2 अभी तक प्रतिबद्ध नहीं है; तब ऐसी स्थिति में, लेनदेन t1 को डर्टी रीड लेनदेन कहा जाता है।

19. List out the new features available in Spring Framework 4.0 and Spring Framework 5.0?

स्प्रिंग 4.0 जावा सुविधाओं का समर्थन करने वाला पहला है। स्प्रिंग 5.0 में रिएक्टिव प्रोग्रामिंग और कोटलिन के लिए समर्थन है।

20. What is a FrontController?

फ्रंटकंट्रोलर में, सर्वलेट को पहला अनुरोध नहीं मिलेगा; पहला अनुरोध फ़्रंटकंट्रोलर के पास जाएगा और अनुरोध सही सर्वलेट पर पारित किया जाएगा।

 दूसरे शब्दों में, DispatcherServlet फ्रंट कंट्रोलर है जो क्लाइंट से सभी अनुरोधों को स्वीकार करता है और फिर उपयुक्त नियंत्रकों को भेजता है।

21. What is a ViewResolver For spring core interview questions ?

ViewResolver एक वेब एप्लिकेशन को गतिशील रूप से (जैसे JSP) अपने दृश्य का चयन करने में सक्षम बनाता है। 

ViewResolver को एक नाम मिलता है  by /WEB-INF/views and a .jsp.  द्वारा जोड़ा जाता है। सामग्री पर सभी प्रदर्शन एक HTML पृष्ठ में किया जाता है।

spring mvc interview questions  22) List out all the concepts that are available in the MVC Architecture?

(i) यह ब्राउज़र डिस्पैचर सेलेट को एक अनुरोध भेजता है

(ii) डिस्पैचरसर्व हैंड्रैपिंग को जानता है और उपयुक्त नियंत्रक पा सकता है

(iii) नियंत्रक अनुरोध को निष्पादित करते हैं और डेटा को मॉडल में डालते हैं और डिस्पैसरसर्वलेट में दृश्य नाम वापस करते हैं।

(iv) DispatcherServlet दृश्य नाम और ViewResolver को मैप पर देखने के लिए उपयोग करता है।

23. Explain Model Attribute?

एनोटेशन @ModelAttribute आमतौर पर एक नियंत्रक के अंदर मौजूद विधि पर सजाया गया है। यह नियंत्रक में उपलब्ध अन्य सभी विधियों में उपलब्ध विधि की मदद करेगा।

24. What is a Session Attribute?

एनोटेशन @SessionAttributes ("वाद") वर्ग (नियंत्रक) पर सजाया गया है। मॉडल में मौजूद विशेषता (तर्क) सत्र में उपलब्ध है।

आपको यह भी पसंद आ सकता है: 2018 के लिए शीर्ष 55 जावा साक्षात्कार प्रश्न और उत्तर

25. Explain the @InitBinder?

यह एनोटेशन एक विधि पर सजाया गया है जिसमें एक तिथि प्रारूप घोषित किया जाता है, और पूरे कक्षा में, निर्धारित तिथि प्रारूप का उपयोग किया जाता है।

 जब भी बंधन किसी दिनांक फ़ील्ड @InitBinder के साथ होता है; एनोटेशन CustomDateEditor का उपयोग करने के लिए कहता है, जो बदले में @InitBinder में उल्लिखित तिथि प्रारूप का उपयोग करता है।

spring boot interview questions 26) Define @ControllerAdvice?

इस एनोटेशन का उपयोग तब किया जाता है जब तर्क को कई वर्गों (नियंत्रकों) में आमतौर पर लागू करने की आवश्यकता होती है। 

उदाहरण के लिए, यदि एक अपवाद या उसके उपवर्ग, या जब कक्षाओं में कोई अपवाद उठाया जाता है, 

तो इसे @ExceptionHandler के साथ एनोटेट की गई विधि द्वारा नियंत्रित किया जाएगा। 

जब भी किसी भी नियंत्रक में कोई अपवाद होता है, तो अपवाद को @ExceptionHandler के साथ एनोटेट विधि द्वारा नियंत्रित किया जाता है।

27. Why Spring Boot use for java spring this question is usually asked in java spring interview questions ?

स्प्रिंग-आधारित एप्लिकेशन में बहुत सारे कॉन्फ़िगरेशन (बॉयलर-प्लेट कोड) हैं। 

स्प्रिंग एमवीसी में, बहुत सारे कॉन्फ़िगरेशन की आवश्यकता होती है (component scan, dispatcher servlet, view resolver, etc)। जबकि, स्प्रिंग बूट में बॉयलर-प्लेट कोड की आवश्यकता नहीं होती है।

28. Spring vs Spring MVC vs Spring Boot in Java?

स्प्रिंग: स्प्रिंग की सबसे महत्वपूर्ण विशेषता डिपेंडेंसी इंजेक्शन या नियंत्रण का विलोम है।

स्प्रिंग एमवीसी: वेब एप्लिकेशन विकसित करने में एक डिकूप्टेड दृष्टिकोण प्रदान करता है। DispatcherServlet, ModelAndView, ViewResolver जैसी अवधारणाएं वेब एप्लिकेशन विकास को आसान बनाती हैं।

स्प्रिंग बूट: ऑटो कॉन्फ़िगरेशन नामक एक सुविधा का उपयोग करके कॉन्फ़िगरेशन को बहुत आसान और स्वचालित बनाता है, जिसमें डिस्पैचरसर्वलेट आंतरिक रूप से किया जाता है।

29. What is the role of @SpringBootApplication?

इस एनोटेशन का उपयोग संपूर्ण एप्लिकेशन को लॉन्च करने के लिए किया जाता है। आंतरिक रूप से, @SpringBootApplication निम्न कार्य करता है,

@SpringBootConfiguration: स्प्रिंग ऐप्लिकेशन में @Configuration के समान।

@EnableAutoConfiguration: वर्गपथ में उपलब्ध कक्षाओं को स्वतः कॉन्फ़िगर करता है।

@ComponentScan: इस एनोटेशन के लागू होने पर एक पैकेज के तहत उपलब्ध सभी कक्षाएं स्कैन की जाएंगी।


30. What does an Embedded Server mean in Spring Boot?

किसी भी वेब एप्लिकेशन को तैनात करने के लिए टॉमकैट जैसे सर्वर की आवश्यकता होती है। 

स्प्रिंग बूट में एक सर्वर (जैसे टॉमकैट) एक जार में एप्लिकेशन के भाग के रूप में उपलब्ध है। 

एंबेडेड सर्वर की अवधारणा आवेदन की तैनाती को बहुत आसान और स्वतंत्र बनाती है।

31. Why do we use application.properties For spring boot interview questions ?

फ़ाइल Application.properties का उपयोग डेटाबेस विवरण, लॉग जनरेशन, सुरक्षा (उपयोगकर्ता नाम / पासवर्ड), क्रमांकन, आदि जैसी चीजों को कॉन्फ़िगर करने के लिए किया जाता है।

32. What is Spring JDBC?

स्प्रिंग JDBC डेटाबेस के साथ बातचीत करने के लिए अद्यतन (क्वेरी), निष्पादित (क्वेरी) और क्वेरी (SQL, resultSetExtractor) जैसे तरीकों का उपयोग करता है।

33. What is the difference between JDBC and Spring JDBC?

JDBC में, जाँच किए गए अपवादों को लिखना होगा; जबकि, स्प्रिंग JDBC में उन अपवादों को रनटाइम अपवाद में बनाया गया है। जिसका अर्थ है, स्प्रिंग JDBC में मैन्युअल रूप से अपवाद हैंडलिंग नहीं किया जाता है।

34. What is JPA For spring boot interview questions and answers ?

जावा पर्सिस्टेंस एपीआई (जेपीए) जावा ऑब्जेक्ट से डेटाबेस टेबल पर मैपिंग को परिभाषित करता है। 

डेटाबेस तालिका में एक पंक्ति में जावा ऑब्जेक्ट को मैप करने की प्रक्रिया को जेपीए में परिभाषित किया गया है। 

जेपीए कई उपयोगी एनोटेशन प्रदान करता है, जिसके उपयोग से कक्षाओं और तालिकाओं के बीच संबंध परिभाषित होते हैं।

35. What is Hibernate?

एक बार मानचित्रण हो जाने के बाद, हाइबरनेट (एक जेपीए कार्यान्वयन) हमें हुड के नीचे क्वेरी बनाने और डेटाबेस के साथ बातचीत करने में मदद करेगा।

36. Describe the cases in which the Dependency Injection is done through Constructors and Setters in java?


जब निर्भरता आवश्यक / अनिवार्य होती है, तो कन्स्ट्रक्टर दृष्टिकोण का चयन किया जाता है। और जब निर्भरता वैकल्पिक होती है तो सेटर्स अप्रोच का उपयोग किया जाता है।

आपको यह भी पसंद आ सकता है: शीर्ष 30 साक्षात्कार प्रश्न और उत्तर 5 कोणीय पर

37. What is the importance of POM.XML file?

प्रोजेक्ट ऑब्जेक्ट मॉडल (POM) एक XML स्वरूपित फ़ाइल है जिसमें एक मावेन परियोजना के लिए सभी कॉन्फ़िगरेशन को परिभाषित किया गया है। POM.XML में सबसे अधिक उपयोग किए जाने वाले टैग <groupid>, <artifactId>, <version>, <packaging> और कुछ और हैं।

spring core interview questions 38. What does the @RequestParam annotation do?


यह सर्वर पक्ष को डेटा से पढ़ने और स्वचालित रूप से विधि में आने वाले पैरामीटर से बांधने की अनुमति देता है।

39. What is Spring Security?

स्प्रिंग सिक्योरिटी J2EE एप्लिकेशन को सुरक्षा सेवाएँ प्रदान करती है। वसंत सुरक्षा हुड के तहत सर्वलेट फिल्टर का उपयोग करके कार्यान्वित की जाती है। सर्वलेट फ़िल्टर का उपयोग पूर्व-प्रक्रिया या पोस्ट-प्रोसेस वेब अनुरोधों के लिए किया जाता है।

40. What is CSRF For spring boot interview questions ?

क्रॉस-साइट रिक्वेस्ट फॉरेरी (CSRF) एक सुरक्षा हमला है, जहां एक जालसाज वेबसाइट उपयोगकर्ता को वेब एप्लिकेशन पर एक ईवेंट में प्रदर्शन करने के लिए ट्रिक करती है जिसे वह लॉग इन करता है। उदाहरण के लिए, यदि उपयोगकर्ता ऑनलाइन बैंकिंग खाते में लॉग इन होता है, तो यह हमला उपयोगकर्ता को किसी अज्ञात व्यक्ति को धन हस्तांतरित करने के लिए प्रेरित करता है।

Tuesday, February 16, 2021

Spring boot interview question - Creak java interview

1. Introduction spring boot interview question

अपनी शुरूआत के बाद से, स्प्रिंग बूट स्प्रिंग इकोसिस्टम में एक प्रमुख खिलाड़ी रहा है। यह परियोजना अपने ऑटो-कॉन्फ़िगरेशन क्षमता के साथ हमारे जीवन को बहुत आसान बनाती है।

इस ट्यूटोरियल में, हम spring boot से संबंधित कुछ सबसे simple java spring boot interview questions को शामिल करेंगे जो नौकरी के साक्षात्कार के दौरान सामने आ सकते हैं।



Spring boot interview question in hindi- Creak java interview
Spring boot interview question in hindi- Creak java interview

2. Questions For spring boot questions

Q1। स्प्रिंग बूट क्या है और इसकी मुख्य विशेषताएं क्या हैं?

स्प्रिंग बूट मूल रूप से स्प्रिंग फ्रेमवर्क के शीर्ष पर निर्मित तीव्र अनुप्रयोग विकास के लिए एक रूपरेखा है। 

अपने ऑटो-कॉन्फ़िगरेशन और एम्बेडेड एप्लिकेशन सर्वर समर्थन के साथ, व्यापक प्रलेखन और सामुदायिक समर्थन के साथ संयुक्त रूप से इसे आनंद मिलता है, 

स्प्रिंग बूट जावा पारिस्थितिकी तंत्र में आज तक की सबसे लोकप्रिय तकनीकों में से एक है।

यहाँ कुछ मुख्य विशेषताएं हैं:

  •     Starters – एक बार में प्रासंगिक निर्भरता को शामिल करने के लिए निर्भरता विवरणकों का एक सेट
  •     Auto-configuration – क्लासपाथ पर मौजूद निर्भरता के आधार पर किसी एप्लिकेशन को स्वचालित रूप से कॉन्फ़िगर करने का तरीका
  •     Actuator - उत्पादन-तैयार सुविधाओं जैसे निगरानी के लिए
  •     Security
  • Logging


Q2। स्प्रिंग और स्प्रिंग बूट के बीच अंतर क्या हैं?

स्प्रिंग फ्रेमवर्क कई विशेषताएं प्रदान करता है जो वेब एप्लिकेशन के विकास को आसान बनाते हैं। इन सुविधाओं में निर्भरता इंजेक्शन, डेटा बाइंडिंग, aspect-oriented programming, डेटा एक्सेस और कई और अधिक शामिल हैं।

वर्षों से, Spring अधिक से अधिक जटिल हो रहा है, और इस तरह के आवेदन की आवश्यकता होती है कॉन्फ़िगरेशन की मात्रा डराने वाली हो सकती है। यह वह जगह है जहां स्प्रिंग बूट काम में आता है - यह एक स्प्रिंग एप्लीकेशन को एक हवा देता है।

अनिवार्य रूप से, जबकि स्प्रिंग अनोपिनियेटेड है, स्प्रिंग बूट प्लेटफ़ॉर्म और लाइब्रेरीज़ के बारे में एक राय देता है, जिससे हम जल्दी से शुरुआत कर सकें।

यहां spring boot के सबसे महत्वपूर्ण लाभों में से दो हैं:

  •     क्लासपथ पर मिलने वाली कलाकृतियों के आधार पर ऑटो-कॉन्फ़िगर एप्लिकेशन
  •     उत्पादन में अनुप्रयोगों के लिए गैर-कार्यात्मक सुविधाएँ प्रदान करें, जैसे कि सुरक्षा या स्वास्थ्य जाँच


Q3। हम मावेन के साथ स्प्रिंग बूट एप्लीकेशन कैसे सेट कर सकते हैं?

हम किसी अन्य पुस्तकालय की तरह मावेन परियोजना में स्प्रिंग बूट को शामिल कर सकते हैं। 

हालांकि, सबसे अच्छा तरीका वसंत-बूट-स्टार्टर-पैरेंट प्रोजेक्ट से विरासत में मिला है और स्प्रिंग बूट शुरुआत के लिए निर्भरता की घोषणा करना है। 

ऐसा करने से हमारी परियोजना स्प्रिंग बूट की डिफ़ॉल्ट सेटिंग्स का पुन: उपयोग करती है।

स्प्रिंग-बूट-स्टार्टर-पैरेंट प्रोजेक्ट को इनहेरिट करना सीधा है - हमें केवल pomx .xml में पेरेंट एलिमेंट को निर्दिष्ट करना है:


<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.0.RELEASE</version>
</parent>


हम मावेन सेंट्रल पर स्प्रिंग-बूट-स्टार्टर-पैरेंट का नवीनतम संस्करण पा सकते हैं।

स्टार्टर पैरेंट प्रोजेक्ट का उपयोग करना सुविधाजनक है, लेकिन हमेशा संभव नहीं है। उदाहरण के लिए, यदि हमारी कंपनी को मानक POM से विरासत में सभी परियोजनाओं की आवश्यकता है, तो हम अभी भी कस्टम माता-पिता का उपयोग करके स्प्रिंग बूट के निर्भरता प्रबंधन से लाभ उठा सकते हैं।


Q4। Spring Initializr क्या है?

स्प्रिंग बूट प्रोजेक्ट बनाने के लिए स्प्रिंग इनिग्निज़र एक सुविधाजनक तरीका है।

हम स्प्रिंग प्रीलिफ़र साइट पर जा सकते हैं, एक निर्भरता प्रबंधन उपकरण (या तो मेवेन या ग्रेडल), एक भाषा (जावा, कोटलिन या ग्रूवी), एक पैकेजिंग योजना (जार या युद्ध), संस्करण और निर्भरताएं चुन सकते हैं और परियोजना डाउनलोड कर सकते हैं।

यह हमारे लिए एक कंकाल परियोजना बनाता है और सेटअप समय बचाता है ताकि हम व्यापार तर्क जोड़ने पर ध्यान केंद्रित कर सकें।

यहां तक ​​कि जब हम स्प्रिंग बूट प्रोजेक्ट बनाने के लिए अपनी आईडीई (जैसे एसटीएस या एसटीएस प्लगइन के साथ ग्रहण) नए प्रोजेक्ट विज़ार्ड का उपयोग करते हैं, तो यह हुड के नीचे स्प्रिंग एनरिलिज का उपयोग करता है।

Q 5 What Spring Boot Starters Are Available out There?

प्रत्येक स्टार्टर को हमारी ज़रूरत की सभी स्प्रिंग तकनीकों के लिए वन-स्टॉप-शॉप के रूप में एक भूमिका निभाता है। इसके बाद अन्य आवश्यक निर्भरताएँ एक दूसरे के अनुकूल तरीके से खींची जाती हैं और प्रबंधित की जाती हैं।

सभी शुरुआत org.springframework.boot समूह के तहत होती है और उनके नाम वसंत-बूट-स्टार्टर के साथ शुरू होते हैं- यह नामकरण पैटर्न शुरुआत खोजने में आसान बनाता है, खासकर जब आईडीई के साथ काम करते हैं जो नाम से निर्भरता खोजने का समर्थन करते हैं।

इस लेखन के समय, हमारे निपटान में 50 से अधिक शुरुआती हैं। सबसे अधिक उपयोग किया जाता है:

  •     स्प्रिंग-बूट-स्टार्टर: कोर स्टार्टर, जिसमें ऑटो-कॉन्फ़िगरेशन सपोर्ट, लॉगिंग और YAML शामिल हैं
  •     स्प्रिंग-बूट-स्टार्टर-एओपी: स्प्रिंग एओपी और एस्पेक्टज के साथ पहलू-उन्मुख प्रोग्रामिंग के लिए स्टार्टर
  •     स्प्रिंग-बूट-स्टार्टर-डेटा-जेपा: हाइबरनेट के साथ स्प्रिंग डेटा जेपीए का उपयोग करने के लिए स्टार्टर
  •     स्प्रिंग-बूट-स्टार्टर-सुरक्षा: स्प्रिंग सुरक्षा का उपयोग करने के लिए स्टार्टर
  •     स्प्रिंग-बूट-स्टार्टर-टेस्ट: स्प्रिंग बूट एप्लिकेशन के परीक्षण के लिए स्टार्टर
  •     स्प्रिंग-बूट-स्टार्टर-वेब: बिल्डिंग वेब के लिए स्टार्टर, रेस्टफुल सहित, स्प्रिंग एमवीसी का उपयोग करने वाले अनुप्रयोग


शुरुआत की पूरी सूची के लिए, कृपया इस भंडार को देखें।

स्प्रिंग बूट स्टार्टर्स के बारे में अधिक जानकारी प्राप्त करने के लिए, इंट्रो पर स्प्रिंग बूट स्टार्टर्स पर एक नज़र डालें।

Q6। एक विशिष्ट ऑटो-कॉन्फ़िगरेशन को कैसे अक्षम करें?

यदि हम एक विशिष्ट ऑटो-कॉन्फ़िगरेशन को अक्षम करना चाहते हैं, तो हम @EnableAutoConfiguration एनोटेशन के बहिष्करण विशेषता का उपयोग करके इसे इंगित कर सकते हैं। उदाहरण के लिए, यह कोड स्निपेट DataSourceAutoConfiguration को बेअसर करता है:


// other annotations
@EnableAutoConfiguration(exclude = DataSourceAutoConfiguration.class)
public class MyConfiguration { }


अगर हमने @SpringBootApplication एनोटेशन के साथ ऑटो-कॉन्फ़िगरेशन को सक्षम किया है - जिसमें मेटा-एनोटेशन के रूप में @EnableAutoConfiguration है - हम इसी नाम की विशेषता के साथ ऑटो-कॉन्फ़िगरेशन को अक्षम कर सकते हैं:


// other annotations
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class MyConfiguration { }


हम स्प्रिंग के साथ ऑटो-कॉन्फ़िगरेशन को भी अक्षम कर सकते हैं ।autoconfigure.exclude पर्यावरण संपत्ति। Application.properties फ़ाइल में यह सेटिंग पहले की तरह ही काम करती है:


spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration


प्र 7। कस्टम ऑटो-कॉन्फ़िगरेशन कैसे पंजीकृत करें?

ऑटो-कॉन्फ़िगरेशन क्लास रजिस्टर करने के लिए, हमारे पास META-INF / spring.factories फ़ाइल में EnableAutoConfiguration कुंजी के तहत सूचीबद्ध इसका पूर्ण-योग्य नाम होना चाहिए:


org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.baeldung.autoconfigure.CustomAutoConfiguration


यदि हम मावेन के साथ एक परियोजना का निर्माण करते हैं, तो उस फ़ाइल को संसाधन / मेटा-इन निर्देशिका में रखा जाना चाहिए, जो पैकेज चरण के दौरान उल्लिखित स्थान पर समाप्त हो जाएगा।

Q 8। जब एक बीन अस्तित्व में आता है तो ऑटो-कॉन्फ़िगरेशन को पीछे से कैसे बताएं?

जब कोई बीन पहले से मौजूद है, तो ऑटो-कॉन्फ़िगरेशन क्लास को बैक-ऑफ करने का निर्देश देने के लिए, हम @ConditionalOnMissingBean एनोटेशन का उपयोग कर सकते हैं। इस एनोटेशन की सबसे उल्लेखनीय विशेषताएं हैं:


    मूल्य: सेम के प्रकारों की जाँच की जानी चाहिए
    नाम: सेम के नामों की जाँच की जानी है

जब @ विधि से सजी एक विधि पर रखा जाता है, तो लक्ष्य प्रकार विधि की वापसी प्रकार में चूक करता है:


@Configuration
public class CustomConfiguration {
@Bean
@ConditionalOnMissingBean
public CustomService service() { ... }
}

Q9. Jar and War Files के रूप में स्प्रिंग बूट वेब एप्लिकेशन को कैसे नियुक्त करें?

परंपरागत रूप से, हम एक वेब एप्लिकेशन को एक WAR फ़ाइल के रूप में पैकेज करते हैं, फिर इसे एक बाहरी सर्वर में तैनात करते हैं। ऐसा करने से हम एक ही सर्वर पर कई एप्लिकेशन की व्यवस्था कर सकते हैं। उस समय जब सीपीयू और मेमोरी दुर्लभ थे, यह संसाधनों को बचाने का एक शानदार तरीका था।

हालांकि, चीजें बदल गई हैं। कंप्यूटर हार्डवेयर अब काफी सस्ता है, और सर्वर कॉन्फ़िगरेशन पर ध्यान दिया गया है। तैनाती के दौरान सर्वर को कॉन्फ़िगर करने में एक छोटी सी गलती भयावह परिणाम हो सकती है।

वसंत एक निष्पादन योग्य जार के रूप में एक वेब एप्लिकेशन को पैकेज करने के लिए एक प्लगइन, अर्थात् वसंत-बूट-मावेन-प्लगइन प्रदान करके इस समस्या से निपटता है। इस प्लगइन को शामिल करने के लिए, बस pom.xml में एक प्लगइन तत्व जोड़ें:


<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>


जगह में इस प्लगइन के साथ, हम पैकेज चरण को निष्पादित करने के बाद एक मोटा जार प्राप्त करेंगे। इस JAR में एक एम्बेडेड सर्वर सहित सभी आवश्यक निर्भरताएँ हैं। इस प्रकार, हमें अब बाहरी सर्वर को कॉन्फ़िगर करने के बारे में चिंता करने की आवश्यकता नहीं है।

हम तब एप्लिकेशन को वैसे ही चला सकते हैं जैसे हम एक सामान्य निष्पादन योग्य JAR।

ध्यान दें कि pom.xml फ़ाइल में पैकेजिंग तत्व जार को JAR फ़ाइल बनाने के लिए सेट किया जाना चाहिए:


<packaging>jar</packaging>


यदि हम इस तत्व को शामिल नहीं करते हैं, तो यह जार के लिए भी चूक है।

यदि हम WAR फ़ाइल बनाना चाहते हैं, तो पैकेजिंग तत्व को युद्ध में बदल दें:


<packaging>war</packaging>


और डिब्बाबंद फ़ाइल से कंटेनर निर्भरता को छोड़ दें:


<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>


मावेन पैकेज चरण को निष्पादित करने के बाद, हमारे पास एक डब्लूएआर फ़ाइल होगी।

प्रश्न 10। कमांड लाइन अनुप्रयोगों के लिए स्प्रिंग बूट का उपयोग कैसे करें?

किसी भी अन्य जावा प्रोग्राम की तरह, स्प्रिंग बूट कमांड लाइन एप्लिकेशन में एक मुख्य विधि होनी चाहिए। यह विधि एक प्रवेश बिंदु के रूप में कार्य करती है, जो SpringApplication#run method को एप्लिकेशन को बूटस्ट्रैप करने के लिए आमंत्रित करती है:

Code for spring boot interview questions 


@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class);
// other statements
}
}

SpringApplication class फिर एक स्प्रिंग कंटेनर और ऑटो-कॉन्फ़िगर बीन्स को निकालता है।

ध्यान दें कि हमें प्राथमिक कॉन्फ़िगरेशन स्रोत के रूप में काम करने के लिए रन क्लास के लिए एक कॉन्फ़िगरेशन क्लास पास करना होगा। कन्वेंशन द्वारा, यह तर्क ही एंट्री क्लास है।

रन विधि को कॉल करने के बाद, हम एक नियमित कार्यक्रम के रूप में अन्य कथनों को निष्पादित कर सकते हैं।


प्रश्न 11 External Configuration के संभावित स्रोत क्या हैं?

स्प्रिंग बूट बाहरी विन्यास के लिए समर्थन प्रदान करता है, जिससे हमें विभिन्न वातावरणों में समान एप्लिकेशन चलाने की अनुमति मिलती है। 

हम कॉन्फ़िगरेशन फ़ाइलों को निर्दिष्ट करने के लिए properties files, YAML files, environment variables, system properties और कमांड-लाइन विकल्प तर्क का उपयोग कर सकते हैं।

उसके बाद हम उन संपत्तियों का उपयोग कर सकते हैं जो @Value एनोटेशन, @ConfigurationProperties एनोटेशन, या पर्यावरण अमूर्त के माध्यम से एक बाउंड ऑब्जेक्ट का उपयोग कर रहे हैं।

प्रश्न 12। इसका क्या मतलब है कि स्प्रिंग बूट सपोर्टिंग बाइंडिंग में ढील देता है?

स्प्रिंग बूट में आराम से बांधना विन्यास गुणों के प्रकार-सुरक्षित बंधन पर लागू होता है।

आराम से बंधन के साथ, एक संपत्ति की कुंजी को एक संपत्ति के नाम का सटीक मिलान होने की आवश्यकता नहीं है। इस तरह की पर्यावरण संपत्ति को कैमसेल, कबाब-केस, स्नेक_केस या अपरकेस में अंडरस्कोर द्वारा अलग किए गए शब्दों के साथ लिखा जा सकता है।

उदाहरण के लिए, अगर @ConfigurationProperties एनोटेशन वाली बीन क्लास में एक प्रॉपर्टी का नाम myProp है, तो यह इन में से किसी भी पर्यावरण गुण के लिए बाध्य हो सकती है:

myProp, my-prop, my_prop, or MY_PROP.

प्रश्न 13.  Spring Boot Devtools के लिए क्या प्रयोग किया जाता है?

स्प्रिंग बूट डेवलपर टूल, या देवटूल, विकास प्रक्रिया को आसान बनाने वाले उपकरणों का एक समूह है। इन विकास-समय सुविधाओं को शामिल करने के लिए, हमें बस pom.xml फ़ाइल पर निर्भरता जोड़ने की आवश्यकता है:


<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>


यदि एप्लिकेशन उत्पादन में चलता है तो स्प्रिंग-बूट-डेवॉल्ट्स मॉड्यूल स्वचालित रूप से अक्षम हो जाता है। अभिलेखागार का फिर से आना भी इस मॉड्यूल को डिफ़ॉल्ट रूप से बाहर करता है। इसलिए, यह हमारे अंतिम उत्पाद के लिए कोई उपरि नहीं लाएगा।

डिफ़ॉल्ट रूप से, DevTools एक विकास वातावरण के लिए उपयुक्त गुण लागू करता है। ये गुण टेम्पलेट कैशिंग को अक्षम करते हैं, वेब समूह के लिए डिबग लॉगिंग सक्षम करते हैं, और इसी तरह। नतीजतन, हमारे पास यह समझदार विकास-समय कॉन्फ़िगरेशन है बिना किसी गुण को स्थापित किए।

जब भी क्लासपाथ पर कोई फ़ाइल बदलती है, DevTools का उपयोग करने वाले एप्लिकेशन पुनः आरंभ होते हैं। यह विकास में एक बहुत ही सहायक विशेषता है, क्योंकि यह संशोधनों के लिए त्वरित प्रतिक्रिया देता है।

डिफ़ॉल्ट रूप से, स्थैतिक संसाधन, जिसमें व्यू टेम्प्लेट शामिल हैं, फिर से शुरू न करें। 

इसके बजाय, एक संसाधन परिवर्तन एक ब्राउज़र ताज़ा ट्रिगर करता है। ध्यान दें कि यह तभी हो सकता है 

जब LiveReload एक्सटेंशन को ब्राउज़र में स्थापित किया गया है ताकि एम्बेडेड LiveReload सर्वर के साथ बातचीत की जा सके जिसमें DevTools शामिल हैं।

इस विषय पर अधिक जानकारी के लिए, कृपया स्प्रिंग बूट देवटूल का अवलोकन देखें।


Q14. How to Write Integration Tests?


स्प्रिंग एप्लिकेशन के लिए एकीकरण परीक्षण चलाते समय, हमारे पास ApplicationContext होना चाहिए।

हमारे जीवन को आसान बनाने के लिए, स्प्रिंग बूट परीक्षण के लिए एक विशेष एनोटेशन प्रदान करता है - @SpringBootTest। यह एनोटेशन अपनी कक्षाओं विशेषता द्वारा इंगित कॉन्फ़िगरेशन कक्षाओं से एक ApplicationContext बनाता है।

यदि क्लास की विशेषता सेट नहीं होती है, तो स्प्रिंग बूट प्राथमिक कॉन्फ़िगरेशन क्लास के लिए खोज करता है। खोज पैकेज से शुरू होती है जिसमें परीक्षण तब तक होता है जब तक कि यह @SpringBootApplication या @SpringBootConfiguration के साथ एनोटेट न हो जाए।

विस्तृत निर्देशों के लिए, स्प्रिंग बूट में परीक्षण के बारे में हमारे ट्यूटोरियल की जाँच करें।

spring boot interview questions in Hindi:-


प्र 15। Spring Boot Actuator के लिए क्या उपयोग किया जाता है?

अनिवार्य रूप से, एक्ट्यूएटर उत्पादन-तैयार सुविधाओं को सक्षम करके जीवन में स्प्रिंग बूट एप्लिकेशन लाता है। जब वे उत्पादन में चल रहे होते हैं तो ये सुविधाएँ हमें अनुप्रयोगों की निगरानी और प्रबंधन करने की अनुमति देती हैं।

एक परियोजना में स्प्रिंग बूट एक्ट्यूएटर को एकीकृत करना बहुत सरल है। हमें बस इतना करना है कि वसंत-बूट-स्टार्टर-एक्ट्यूएटर स्टार्टर को pom.xml फ़ाइल में शामिल करें:


<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>


स्प्रिंग बूट एक्ट्यूएटर HTTP या जेएमएक्स एंडपॉइंट का उपयोग करके परिचालन जानकारी को उजागर कर सकता है। अधिकांश एप्लिकेशन HTTP के लिए चलते हैं, हालांकि, जहां एक समापन बिंदु और / एक्चुएटर उपसर्ग की पहचान एक URL पथ बनाती है।

यहाँ कुछ सबसे आम बिल्ट-इन एंडपॉइंट्स Actuator प्रदान करता है:


  • env: Exposes environment properties
  • health: Shows application health information
  • httptrace: Displays HTTP trace information
  • info: Displays arbitrary application information
  • metrics: Shows metrics information
  • loggers: Shows and modifies the configuration of loggers in the application
  • mappings: Displays a list of all @RequestMapping paths



प्रश्न 16। एक स्प्रिंग बूट प्रोजेक्ट को कॉन्फ़िगर करने का एक बेहतर तरीका क्या है - Properties or YAML का उपयोग करना?

YAML गुण फाइलों पर कई लाभ प्रदान करता है, जैसे:

  •     अधिक स्पष्टता और बेहतर पठनीयता
  •     पदानुक्रमित कॉन्फ़िगरेशन डेटा के लिए बिल्कुल सही, जिसे बेहतर, अधिक पठनीय प्रारूप में भी दर्शाया गया है
  •     नक्शे, सूचियों और स्केलर प्रकारों के लिए समर्थन
  •     एक ही फाइल में कई प्रोफाइल शामिल कर सकते हैं (चूंकि स्प्रिंग बूट 2.4.0, यह गुण फाइलों के लिए भी संभव है)


हालाँकि, इसे लिखना इसके इंडेंटेशन नियमों के कारण थोड़ा मुश्किल और त्रुटि-रहित हो सकता है।

विवरण और काम के नमूने के लिए, कृपया हमारे स्प्रिंग YAML बनाम गुण ट्यूटोरियल देखें।


प्रश्न 17। Spring Boot Offers मूल आधार क्या हैं?

प्राथमिक एनोटेशन जो स्प्रिंग बूट अपने org.springframework.boot.autoconfigure और इसके उप-पैकेज में रहते हैं। यहाँ कुछ बुनियादी बातें हैं:

  •     @EnableAutoConfiguration - इसके क्लासपाथ पर ऑटो-कॉन्फ़िगरेशन बीन्स के लिए स्प्रिंग बूट देखो और स्वचालित रूप से उन्हें लागू करने के लिए।
  •     @SpringBootApplication - एक बूट एप्लिकेशन के मुख्य वर्ग को निरूपित करने के लिए उपयोग किया जाता है। यह एनोटेशन उनके डिफ़ॉल्ट विशेषताओं के साथ @Configuration, @EnableAutoConfiguration और @ComponentScan एनोटेशन को जोड़ती है।


स्प्रिंग बूट एनोटेशन विषय में अधिक जानकारी प्रदान करता है।

प्रश्न 18। आप स्प्रिंग बूट में डिफ़ॉल्ट पोर्ट कैसे बदल सकते हैं?

हम स्प्रिंग बूट में एम्बेडेड सर्वर के डिफ़ॉल्ट पोर्ट को इनमें से किसी एक तरीके से बदल सकते हैं:

  •     प्रॉपर्टी फ़ाइल का उपयोग करना - हम इसे एक प्रॉपर्टी सर्वर का उपयोग करके एक application.properties (या application.yml) फ़ाइल में परिभाषित कर सकते हैं।
  •     प्रोग्रामेटिक रूप से - हमारे मुख्य @SpringBootApplication वर्ग में, हम SpringApplication इंस्टेंस पर server.port सेट कर सकते हैं
  •     कमांड लाइन का उपयोग करना - एप्लिकेशन को जार फाइल के रूप में चलाने पर, हम सर्वर.पोर्ट को जावा कमांड तर्क के रूप में सेट कर सकते हैं:


java -jar -Dserver.port=8081 myspringproject.jar

प्रश्न 19। कौन से एंबेडेड सर्वर स्प्रिंग बूट सपोर्ट करते हैं, और डिफ़ॉल्ट कैसे बदलें?

तिथि के अनुसार,
Tomcat, Jetty, and Undertow का समर्थन करता है। टॉमकैट स्प्रिंग बूट के वेब स्टार्टर द्वारा समर्थित डिफ़ॉल्ट एप्लिकेशन सर्वर है।

स्प्रिंग वेबफ्लक्स रिएक्टर   Netty, Tomcat, Jetty, and Undertow को रिएक्टर नेट्टी के साथ डिफ़ॉल्ट रूप से समर्थन करता है।

स्प्रिंग एमवीसी में, डिफ़ॉल्ट को बदलने के लिए, आइए जेट्टी से कहते हैं, हमें टॉमकैट को बाहर करने की जरूरत है और निर्भरता में जेट्टी को शामिल करें:


<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>


इसी प्रकार, WebFlux से UnderTow में डिफ़ॉल्ट को बदलने के लिए, हमें रिएक्टर neety को बाहर करने की जरूरत है और निर्भरता में UnderTow को शामिल करना होगा।

"स्प्रिंग बूट में समाहित एम्बेडेड सर्वलेट की तुलना में" स्प्रिंग एमवीसी के साथ हम जिन विभिन्न एम्बेडेड सर्वरों का उपयोग कर सकते हैं उन पर अधिक विवरण हैं।

Read spring boot interview questions :-

क्यू 20। हमें स्प्रिंग प्रोफाइल की आवश्यकता क्यों है?

उद्यम के लिए एप्लिकेशन विकसित करते समय, हम आम तौर पर देव, क्यूए और प्रोडक्ट जैसे कई वातावरणों से निपटते हैं। इन वातावरणों के लिए कॉन्फ़िगरेशन गुण अलग-अलग हैं।

उदाहरण के लिए, हम देव के लिए एक एम्बेडेड H2 डेटाबेस का उपयोग कर सकते हैं, लेकिन उत्पाद का मालिकाना Oracle या DB2 हो सकता है। भले ही DBMS पूरे परिवेश में समान हो, लेकिन URL निश्चित रूप से भिन्न होंगे।

इस आसान और स्वच्छ बनाने के लिए, स्प्रिंग में प्रत्येक पर्यावरण के लिए कॉन्फ़िगरेशन को अलग करने में मदद करने के लिए प्रोफाइल का प्रावधान है। ताकि इस प्रोग्राम को बनाए रखने के बजाय, गुणों को अलग-अलग फाइलों में रखा जा सके जैसे कि application-dev.properties और application-prod.properties। डिफ़ॉल्ट application.properties वर्तमान में सक्रिय प्रोफ़ाइल पर spring.profiles.active का उपयोग करके इंगित करता है ताकि सही कॉन्फ़िगरेशन उठाया जाए।