एक प्रोजेक्ट पर मैं वर्तमान में काम कर रहा हूं कि हमें कई प्रोफाइल की आवश्यकता है, यानी "डिफ़ॉल्ट" और "परीक्षण"। इसे हल करने के लिए, हमने एक मुख्य संदर्भ वर्ग, ApplicationContext.java को 2 सार्वजनिक स्थैतिक आंतरिक कक्षाओं के साथ कार्यान्वित किया है: उनमें से एक डिफ़ॉल्ट प्रोफ़ाइल को परिभाषित करता है, दूसरा परीक्षण प्रोफ़ाइल को परिभाषित करता है। हमारा web.xml ApplicationContext.java को लक्षित करने के लिए सेट है।जावा कॉन्फ़िगरेशन के साथ वसंत में एकाधिक प्रोफाइल को संभालने का सबसे अच्छा अभ्यास क्या है?
कोड इस प्रकार है:
@Configuration
//import common beans
public class ApplicationContext {
@Configuration
@Profile("default")
public static class DefaultContext {
//default beans
}
@Configuration
@Profile("test")
public static class TestContext {
//test beans
}
}
इस के साथ मेरी समस्या यह है कि मुख्य संदर्भ वर्ग, ApplicationContext.java, (यानी src/मुख्य/जावा) की परीक्षा में फ़ाइलों को संदर्भ के साथ उत्पादन वातावरण में है वातावरण। यदि उत्पादन कोड से परीक्षण कोड तक इस निर्भरता को पेश किए बिना इन प्रोफाइल को परिभाषित करने का एक बेहतर तरीका है, तो यह निश्चित रूप से बेहतर होगा।
हमने इन मामलों का परीक्षण एक टेस्ट क्लास में जेटी इंस्टेंस के साथ किया है, जो मुख्य विधि से शुरू हुआ है। इस उदाहरण निम्न आदेश के साथ चलाया जाता है:
System.setProperty("spring.profiles.active", "test");
बात यह है कि हम एक Maven आदेश –
प्लस के साथ cmd से एक जावा मुख्य विधि से जेट्टी शुरू करने के लिए, नहीं चाहता, मुख्य अंतर यह है कि Maven प्रोफाइल हर प्रोफ़ाइल के लिए एक अलग निर्माण उत्पन्न है। इसलिए, स्थानीय विकास के लिए निर्माण रिलीज पर्यावरण से अलग है। मेरी राय में, यह एक गलत दृष्टिकोण है, निर्माण संगतता – ThanksForAllTheFish