স্প্রিং কনফিগারেশন ফাইলটি কোথায় রাখবেন?


18

আমি আমার প্রকল্পের স্প্রিং ফ্রেমওয়ার্কটি বিশেষত সার্ভার সাইডে সংহত করতে চাই।

সুতরাং, আমি এটি যুদ্ধের ফাইলের ওয়েবে-আইএনএফ ফোল্ডারের মধ্যে রাখতে চাই না।

আমি কি একটি অ্যাপ্লিকেশন কনটেক্সট.এক্সএমএল এটিকে প্রতিটি স্তরে রেখে দেব (প্রতিটি প্রকল্পের অর্থ আলাদা প্রকল্পে বিভক্ত হওয়া? (পরিষেবাদি, ডোমেন এবং ডিএও))

ভাল অনুশীলন কি?


2
এই প্রাসঙ্গিক হতে পারে stackoverflow.com/questions/5967405/...
NoChance

উত্তর:


25

ম্যাভেন ফাইলের গঠন এই সঙ্গে সাহায্য করতে পারে

মূলত স্প্রিং কনফিগারেশন ফাইলগুলিতে (যে কোনও জেনারিক নয়, উপায় দ্বারা কোনও নাম থাকতে পারে applicationContext.xml) শ্রেণিপথ সংস্থান হিসাবে বিবেচনা করা হয় এবং এর অধীনে ফাইল করা হয় src/main/resources। বিল্ড প্রক্রিয়া চলাকালীন এগুলি WEB-INF/classesডিরেক্টরিতে অনুলিপি করা হয় যা এই ফাইলগুলি শেষ হওয়ার স্বাভাবিক জায়গা।

পরিবর্তনের মধ্যে অ্যাপ্লিকেশন ফ্রেমওয়ার্কগুলিতে উত্সর্গীকৃত অন্যান্য সংস্থান থেকে বসন্ত প্রসঙ্গে পৃথক করতে একটি অতিরিক্ত springডিরেক্টরি অন্তর্ভুক্ত থাকে (যেমন src/main/resources/spring)। আপনি অ্যাপ্লিকেশন প্রসঙ্গগুলি নিবেদিত স্তরগুলিতে যেমন ভাগ করতে পারেন:

example-servlet.xml
example-data.xml
example-security.xml

ইত্যাদি।

দেব / পরীক্ষা / উত্পাদনের মতো বিভিন্ন পরিবেশ সম্পর্কে কী বলা যায়?

সাধারণত, আপনার বসন্তের কনফিগারেশনটি এর, আহেম, পরিবেশ থেকে পরিবেশের কনফিগারেশনটি বেছে নিতে পারে। সাধারণত এর অর্থ জিনডিআই, জেডিবিসি, এনভায়রনমেন্ট ভেরিয়েবল বা বাহ্যিক বৈশিষ্ট্য ফাইলগুলি প্রয়োজনীয় কনফিগারেশন সরবরাহ করতে হয়। আমি পছন্দের অনুসারে তাদের তালিকাবদ্ধ করি যেহেতু জেএনডিআই সাধারণত নিয়ন্ত্রিত উত্পাদন ক্লাস্টারের বাহ্যিক বৈশিষ্ট্যগুলির ফাইলগুলির চেয়ে পরিচালনা করা সহজ।

সংহতকরণ পরীক্ষার ক্ষেত্রে আপনাকে "কেবলমাত্র পরীক্ষামূলক" স্প্রিং কনফিগারেশন ফাইল ব্যবহার করতে হবে use এটিতে এমন বিশেষ প্রসঙ্গ থাকতে পারে যা পরীক্ষার মটরশুটি বা কনফিগারেশন ব্যবহার করে। এগুলি এসসিআর / পরীক্ষা / সংস্থানসমূহের অধীনে উপস্থিত থাকবে এবং test-বিকাশকারীরা তাদের উদ্দেশ্য সম্পর্কে সচেতন কিনা তা নিশ্চিত করার জন্য একটি উপসর্গ থাকতে পারে । একটি সাধারণ ব্যবহার হ'ল একটি জেএনডিআই ডেটাসোর্স সরবরাহ করা সম্ভবত বিল্ড স্বয়ংক্রিয় পরীক্ষার সময় এইচএসকিউএলডি ডাটাবেসকে লক্ষ্য করে এবং পরীক্ষার ক্ষেত্রে রেফারেন্স করা হবে।

তবে সাধারণত আপনার স্প্রিং কনটেক্সট ফাইলগুলির বেশিরভাগেরই স্তর পরিবর্তনের সময় বিশেষায়িত পরিবর্তনের প্রয়োজন হবে না। এটি একই ক্ষেত্রে হওয়া উচিত যে একই বিল্ড আর্টিক্যাক্ট (যেমন ওয়ার ফাইল) কেবলমাত্র বিভিন্ন শংসাপত্রের সাথে ডেভ / টেস্ট / উত্পাদনে ব্যবহৃত হয়।


2

আপনার প্রকল্পটি কি ম্যাভেন মডিউলগুলিতে বিভক্ত? যদি তা হয় তবে আপনি কনফিগার ফাইলের জন্য একটি অতিরিক্ত মডিউল যুক্ত করতে পারেন। এটিকে কনফিগার-মডিউল বলতে দাও

config-module
      |
      |--> src\main\resources\config\spring\applicationContex.xml
      |--> src\main\resources\config\properties\application.properties
      |--> pom.xml

এই জাতীয় কনফিগারেশন একটি পরামর্শ। আপনার নিজের ফাইল সেট সেট আপ করুন এটি একটি জারের মতো প্যাকেজ করুন এবং এই মডিউলটিকে অন্য কোনও মডিউল (ওয়েব, কানের লিব, অন্য জার) এর নির্ভরতা হিসাবে যুক্ত করুন।

আপনার কাছে কনফিগার-মডিউল সংস্থানগুলিতে অ্যাক্সেস থাকতে হবে (এক্সএমএল, বৈশিষ্ট্য ইত্যাদি) কারণ তারা ক্লাসপথে রয়েছে।

ওয়েব-মডিউল এর pom

<dependency>
    <groupId>com.myproject.group</groupId>
    <artifactId>config-module</artifactId>
</dependency>

তারপরে বহিরাগত স্প্রিং প্রসঙ্গ ফাইলগুলি থেকে আমদানি বিবৃতি ব্যবহার করুন । উদাহরণ স্বরূপ

<import resource="classpath*:com/package/subpackage/**/config/applicationContext.xml" />

এটি একটি মহান ধারণা ছিল! আমি কিছুটা অতিরিক্ত যুক্ত করার স্বাধীনতা নিয়েছি কারণ আপনার উদাহরণ "আমদানি সংস্থান" আমার পক্ষে কাজ করে না ...... আমি এখনও আমদানি বিবরণের "ফিল্টারিং" শিখছি (সম্পূর্ণ প্যাকেজের নামের ভিত্তিতে) ... এবং আমি এই হিচাপ (ভবিষ্যতের পাঠকদের জন্য) এই দুর্দান্ত ধারণা এবং উত্তর থেকে বিক্ষিপ্ত করতে কাজ করি নি। ধন্যবাদ লাইভ!
গ্রানাডা কোডার

আপনার "আমার কী কাজ করা উচিত" আমদানি ব্যর্থ হতে পারে তার একটি কারণ এই বাগের কারণ: github.com/spring-projects/spring-framework/issues/16017
গ্রানাডা কোডার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.