2017-04-05 25 views
7

में डिस्पैचर सर्वलेट और web.xml मैं वर्तमान में जावा ईई से स्प्रिंग बूट प्रोजेक्ट में अपनी परियोजना को स्थानांतरित करने की कोशिश कर रहा हूं। हालांकि, मुझे प्रेषक सर्वलेट और web.xml के साथ भाग पर फंस गया और उलझन में डाल दिया गया है और ऐसा लगता है कि वेब.एक्सएमएल अब परियोजना द्वारा पढ़ा नहीं जा रहा है। वर्तमान प्रोजेक्ट बिल्ला 7.स्प्रिंग बूट

पर चल रहा है मेरी web.xml फ़ाइल में, मैं servlet, servlet-mapping, filter और filter mapping के बहुत सारे है और मैं वास्तव में समझ में नहीं आता कि कैसे डिस्पैचर में मानचित्रण करना है।

मैंने नीचे अपने web.xml का नमूना संलग्न किया है और संस्करण 2.5 है।

<?xml version="1.0" encoding="UTF-8"?> 
 
<web-app metadata-complete="true" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
 
    <display-name>displayName</display-name> 
 
    <description>description</description> 
 
    <resource-ref> 
 
    ... 
 
    </resource-ref> 
 
    <filter> 
 
    <filter-name>Some Filter Name</filter-name> 
 
    <filter-class>Some Filter Class</filter-class> 
 
    <init-param> 
 
     <param-name>Some Param Name</param-name> 
 
     <param-value>Some Value</param-value> 
 
    </init-param> 
 
    </filter> 
 
    <filter-mapping> 
 
    <filter-name>Some Filter Name</filter-name> 
 
    <url-pattern>Some url-pattern</url-pattern> 
 
    </filter-mapping> 
 
    <context-param> 
 
    <param-name>Some Param Name</param-name> 
 
    <param-value>Some Param Value</param-value> 
 
    </context-param> 
 
    <servlet> 
 
    <servlet-name>Some Servlet Name</servlet-name> 
 
    <servlet-class>Some Servlet Class</servlet-class> 
 
    </servlet> 
 
    <servlet-mapping> 
 
    <servlet-name>Some Servlet Name</servlet-name> 
 
    <url-pattern>Some Url Pattern</url-pattern> 
 
    </servlet-mapping> 
 
</web-app>

qns:

  1. मैं अपने web.xml में सब सामान परिवर्तित करना चाहिए, वसंत डिस्पैचर पर भरोसा करने की यदि हाँ मैं यह कैसे प्राप्त कर सकते हैं?
  2. web.xml से वसंत बूट प्रोजेक्ट के लिए जाने का तरीका है?

क्या कोई मुझे यहां मार्गदर्शन कर सकता है? धन्यवाद!!

उत्तर

5
  1. हां, वसंत बूट अब xml कॉन्फ़िगरेशन पर रिले नहीं है और यह स्वचालित रूप से प्रेषक सर्वलेट के बराबर कॉन्फ़िगर करता है। आप अपने फ़िल्टर को पंजीकृत करने के तरीके को देखने के लिए निम्न लिंक का अनुसरण कर सकते हैं: How to add a filter class in Spring Boot?
  2. यदि आप मेवेन का उपयोग करते हैं और ग्रेड नहीं करते हैं, तो आपके वसंत बूट प्रोजेक्ट में एकमात्र एक्सएमएल pom.xml होना चाहिए। वसंत बूट के साथ जाने का तरीका आपके सभी एक्सएमएल कॉन्फ़िगरेशन, web.xml आदि को वसंत बूट की ऑटो कॉन्फ़िगरेशन + आपके जावा कॉन्फ़िगरेशन में ले जा रहा है।

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

+0

इसे स्पष्ट करने के लिए धन्यवाद! तो क्या मुझे यह कहने का अधिकार है कि मुझे 'web.xml' में प्रत्येक टैग से सभी मूल्यों को मेरे '@ SpringBootAplication' कक्षा में पंजीकृत करना होगा? – NatureWonder

+1

'@ SpringBootAplication' वर्ग को साफ रखना बेहतर है।उदाहरण के लिए 'config' नामक ''springbootAplication' के पैकेज के तहत एक नया पैकेज बनाएं और उदाहरण के लिए 'फ़िल्टर कॉन्फ़िगरेशन' नामक एक '@ कॉन्फ़िगरेशन' एनोटेटेड क्लास बनाएं और अपने फ़िल्टर को '@ बीन' एनोटेटेड विधियों के रूप में पंजीकृत करना प्रारंभ करें। इस तरह आपका कोड क्लीनर और पढ़ने के लिए आसान होगा। आप आवश्यकतानुसार अधिक '@ कॉन्फ़िगरेशन' कक्षाएं बना सकते हैं। – Tom

0
  1. आप अपने web.xml रख सकते हैं, लेकिन यह web.xml में

    <listener> 
        <listener-class>org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener</listener-class> 
    </listener> 
    

    जोड़ने की जरूरत है। और, pom.xml की निर्भर निर्भरता।

  2. सभी श्रोता वर्ग, फ़िल्टर जावा क्लास में परिवर्तित हो जाते हैं। यह कक्षा @Configuration.

  3. यदि आपके पास एक इंटरसेप्टर है जिसे कॉन्फ़िगरेशन क्लास में स्थानांतरित किया जा सकता है।