2013-11-27 4 views
7

मैं अपनी परियोजनाओं को वसंत-आधारित उत्पाद पर स्विच करना चाहता हूं।पारंपरिक जावा वेब एप्लिकेशन (web.xml के साथ) से वसंत बूट में माइग्रेट कैसे करें?

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

Let's take a open source web application example from github.: Vaadin-Spring Web Application

The web.xml file can be found here.

The root-context file can be found here.

मुझे आशा है कि मेरे परिवर्तन प्रदर्शन करने के लिए कुछ गाइड देखते हैं कि।

I have also submit an issue in the spring-boot project.

उत्तर

12

इस आवेदन एक वसंत MVC आवेदन जहाँ तक मैं बता सकता हूँ नहीं है - यह शायद अगर यह था विस्थापित करने के लिए बहुत आसान हो जाएगा। लक्ष्य (जिथब मुद्दे के अनुसार) एक निष्पादन योग्य जेएआर प्राप्त करना है। हालांकि मूल योजना स्प्रिंग बूट का उपयोग करके एक डब्ल्यूएआर में माइग्रेट कर सकती है और फिर काम करने के बाद एक जार में जा सकती है। यह एक बहुत ही सरल ऐप है इसलिए हमें वास्तव में web.xml पर देखने की आवश्यकता है और इसे प्रासंगिक स्प्रिंग बूट सुविधाओं में अनुवादित करें। यहां कुछ सामान्य मार्गदर्शिकाएं दी गई हैं:

SpringBootServletInitializer (उदाहरण के लिए Application नामक कक्षा में) द्वारा एक तैनाती WAR बनाएं, और स्प्रिंग बूट @EnableAutoConfiguration एनोटेशन जोड़ें। उदाहरण:

@Configuration 
    @EnableAutoConfiguration 
    @ComponentScan 
    public class Application extends SpringBootServletInitializer { 

     @Override 
     protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
      return application.sources(Application.class); 
     } 

फिर कुछ विन्यास जोड़ें:

  • प्रकार Servlet या ServletRegistrationBean का एक @Bean स्थापित करता है कि कंटेनर में सेम के रूप में अगर यह web.xml

  • एक में एक <servlet/> और <servlet-mapping/> था @Bean प्रकार Filter या FilterRegistrationBean समान व्यवहार करता है (जैसे <filter/> और <filter-mapping/>)।

  • ApplicationContext इस मामले में एक XML फ़ाइल में निहित है, तो सबसे आसान पहला कदम @Import है कि वसंत Application में। यह इतना आसान है कि इसे @Bean परिभाषाओं के रूप में कुछ पंक्तियों में पुनर्निर्मित किया जा सकता है।

  • स्टेटिक संसाधनों classpath जड़

एक बार युद्ध में /public (या /static या /resources या /META-INFO/resources) करने के लिए ले जाया जा सकता है कि हम इसे निष्पादन योग्य बनाने के काम कर रहा है हमारे Application, उदा करने के लिए एक main विधि जोड़कर

public static void main(String[] args) { 
    SpringApplication.run(Application.class, args); 
} 

Getting Started Guide on Converting a JAR to a WAR भी देखें।

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

वैसे भी, मुझे कनवर्ट करने पर एक झटका होगा यह विशिष्ट ऐप (स्रोत कोड जार अच्छा होगा), और अगर मैं कुछ नया सीखता हूं तो इस प्रतिक्रिया को अपडेट करें।

+0

मुझे उम्मीद है कि वसंत के साथ, प्रवृत्ति WAR से JAR तक जाने के लिए अधिक से अधिक है। मैं बस एक के माध्यम से जा रहा हूं एक विकास अनुकूल pom.xml स्थापित करने के लिए परेशानी का अच्छा सौदा है जो मुझे springboot + gwt के साथ उत्पादक रूप से काम करने की अनुमति देगा। मैं निष्पादन योग्य जेएआर अवधारणा को सहानुभूति देता हूं, जीडब्ल्यूटी रन जेटी को अक्षम करने के डबल के माध्यम से और सुनिश्चित करना कि जीडब्ल्यूटी संकलन स्रोतों को सही ढंग से काम करने के लिए मेटा-आईएनएफ/संसाधनों में स्रोत रखता है एनजी देव समय। लेकिन हाँ, कुछ लोग जार से युद्ध में तैरने के लिए ज्यादातर जार से WAR में स्थानांतरित करना चाहते हैं उदा। ऐप इंजन लेकिन सामान्य वसंत बूट में एक जार के रूप में अच्छा है। – 99Sono

+0

mutli युद्ध परियोजना के बारे में क्या? http://stackoverflow.com/questions/35632394/converting-multi-war-plplication-to-spring-boot – Yosefki

+0

@ डेव-सीयर, नोट्स के लिए धन्यवाद, मुझे यह बहुत उपयोगी लगता है। मुझे पता है कि यह एक बहुत पुरानी पोस्ट है, मुझे हाल ही में स्प्रिंग बूट में अपेक्षाकृत स्थिर गैर स्प्रिंगएमवीसी वेब एप्लिकेशन माइग्रेट करने पर मूल्यांकन करने के लिए कहा गया था। आइडोस्कलिंग के साथ क्लाउड पर तैनात करने में सक्षम होने के लिए विचार निष्पादन योग्य जार शैली में परिवर्तित करना है। क्या आप सलाह दे सकते हैं कि इस पर आपकी राय क्या थी, पिछले 3 वर्षों में स्प्रिंग बूट पर कुछ भी बदल गया जो कि या उसके खिलाफ प्रभावित हो सकता है। – Venkat

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