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 का उपयोग करके इंगित करता है ताकि सही कॉन्फ़िगरेशन उठाया जाए।

0 Comments:

Post a Comment