2016-02-05 4 views
8

वसंत वेब एप्लिकेशन में कस्टम एप्लिकेशनकॉन्टेक्स्टइनइज़रइज़र जोड़ने का एक तरीका यह है कि इसे नीचे दिखाए गए अनुसार web.xml फ़ाइल में जोड़ना है।एक वसंत बूट एप्लिकेशन में कस्टम ApplicationContextInitializer जोड़ने के लिए कैसे?

<context-param> 
    <param-name>contextInitializerClasses</param-name> 
    <param-value>somepackage.CustomApplicationContextInitializer</param-value> 
</context-param> 
<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

लेकिन चूंकि मैं वसंत बूट का उपयोग कर रहा है, वहाँ किसी भी तरह से मैं सिर्फ CustomApplicationContextInitializer जोड़ने के लिए web.xml बनाने के लिए नहीं है?

उत्तर

21

आप उन्हें META-INF/spring.factories

org.springframework.context.ApplicationContextInitializer=\ 
com.example.YourInitializer 

में रजिस्टर कर सकते हैं तुम भी पर अपने SpringApplication चलाने से पहले इसे

application.addInitializers(YourInitializer.class); 
application.run(args); 

या बिल्डर पर

new SpringApplicationBuilder(YourApp.class) 
    .initializers(YourInitializer.class); 
    .run(args); 

यह नहीं था उन्हें जोड़ सकते हैं पहली नज़र में डॉक्टर से स्पष्ट है इसलिए मैंने #5091 टी खोला ओ जांचें।

+1

या में केवल संक्षिप्त उल्लेख किया है 'context.initializer.classes एक गुण में = com.example.YourInitializer' फ़ाइल। मुझे यह दृष्टिकोण पसंद है क्योंकि तब आप पर्यावरण विशिष्ट गुण फ़ाइलों के माध्यम से प्रारंभकर्ताओं को सक्षम/अक्षम कर सकते हैं –

+0

@ जेफ शीट्स यह काम करता है और यह मेरे लिए सबसे सुविधाजनक है, आपको इसे उत्तर के रूप में पोस्ट करना चाहिए –

2

एक अन्य दृष्टिकोण context.initializer.classes=com.example.YourInitializer का उपयोग गुण/yml फ़ाइल में करना है। मुझे यह दृष्टिकोण पसंद है क्योंकि तब आप पर्यावरण विशिष्ट प्रोप फ़ाइलों के माध्यम से प्रारंभकर्ताओं को सक्षम/अक्षम कर सकते हैं।

यह spring boot docs

संबंधित मुद्दे