স্প্রিং কাঠামো
স্প্রিং কাঠামো বা স্প্রিং ফ্রেমওয়ার্কটি একটি অ্যাপ্লিকেশন ফ্রেমওয়ার্ক এবং জাভা প্ল্যাটফর্মের জন্য কন্ট্রোল কন্টেইনারের বিপরীতধর্মী । এর মূল বৈশিষ্ট্যগুলি কোনও জাভা অ্যাপ্লিকেশন দ্বারা ব্যবহার করা যেতে পারে, তবে জাভা EE (এন্টারপ্রাইজ সংস্করণ) প্ল্যাটফর্মের উপরে ওয়েব অ্যাপ্লিকেশনগুলি নির্মাণের জন্য এক্সটেনশন রয়েছে। যদিও ফ্রেমওয়ার্ক কোনও নির্দিষ্ট প্রোগ্রামিং মডেল প্রয়োগ করে না তবে এটি জাভা সম্প্রদায়ে এন্টারপ্রাইজ জাভাবিণ (ইজেবি) মডেলের জন্য অতিরিক্ত বা এমনকি প্রতিস্থাপন হিসাবে জনপ্রিয় হয়ে উঠেছে। এটি ওপেন সোর্সও বটে ।
![]() | |
উন্নয়নকারী | Pivotal Software |
---|---|
প্রাথমিক সংস্করণ | ১ অক্টোবর ২০০২ |
স্থায়ী মুক্তি | 5.1[1] / ২১ সেপ্টেম্বর ২০১৮ |
লেখা হয়েছে | Java |
অপারেটিং সিস্টেম | Cross-platform |
প্লাটফর্ম | Java Virtual Machine |
ধরণ | Application framework |
লাইসেন্স | Apache License 2.0 |
ওয়েবসাইট | spring |
মডিউল
দু ধরনের কনফিগারেশন রয়েছে এতে , এক , xml নির্ভর ও দুই , টিকা নির্ভর ।
নকশার মূলনীতি
দু ধরনের নকশা প্রকার রয়েছে এতে , এক , কন্ট্রোল ধারক এর বিচ্ছিন্নতা (নির্ভরতা ইনজেকশন) ও দুই , দৃষ্টিভঙ্গি ভিত্তিক প্রোগ্রামিং কাঠামো। [2]
কন্ট্রোল ধারক এর বিচ্ছিন্নতা (নির্ভরতা ইনজেকশন)
নির্ভরতা ইনজেকশন (DI) একটি নকশা প্যাটার্ন যা প্রোগ্রামিং কোড থেকে নির্ভরতা সরিয়ে দেয় যাতে এটি পরিচালনা করা এবং অ্যাপ্লিকেশনটি পরীক্ষা করা সহজ হয় । নির্ভরতা ইনজেকশন আমাদের প্রোগ্রামিং কোড loosely মিলিত করে তোলে।
স্প্রিং কাঠামোতে নির্ভরতা ইনজেকশন দুটি উপায় উপলব্ধ করা হয়
- নির্মাতা দ্বারা
- সেট্টার পদ্ধতি দ্বারা
দৃষ্টিভঙ্গি ভিত্তিক প্রোগ্রামিং কাঠামো
এর অন্তর্গত হচ্ছে দৃষ্টিভঙ্গি, পরামর্শ, পয়েন্টকাট, যোগফল, AOP প্রক্সি এবং বয়ন।
তথ্য অ্যাক্সেস ফ্রেমওয়ার্ক
লেনদেন ব্যবস্থাপনা
মডেল-ভিউ-নিয়ামক ফ্রেমওয়ার্ক
স্প্রিং কাঠামো ব্যবহার করে প্রতিনিধিত্বমূলক অবস্থা স্থানান্তর ধরনের ওয়েব সার্ভিস সহজেই তৈরী করা যায়। Restful ওয়েব সার্ভিস স্প্রিং কাঠামোর MVC স্থাপত্যের অংশ। এছাড়া গ্রাহক সিস্টেম তৈরিতে স্প্রিং কাঠামোর রেস্ট-কাঠামো ব্যবহার করা যায়।
রিমোট অ্যাক্সেস ফ্রেমওয়ার্ক
কনভেনশন দ্বারা কোডিং
এটি কনভেনশন ওভার কনফিগারেশন নামেও পরিচিত। রুবি অন রেইলস ওয়েব ফ্রেমওয়ার্কের দর্শনের বর্ণনা দেওয়ার জন্য ড্যানিশ পোগ্রামার ডেভিড হাইনমিয়ার হানসন এই ধারণাকে উপস্থাপন করেছিলেন।
উদাহরণস্বরূপ, মডেল এ একটি ক্লাস সেলস থাকলে, ডাটাবেসের সংশ্লিষ্ট টেবিলের ডিফল্ট নাম "সেলস" হয়। এই কনভেনশন থেকে বিচ্যুত হলেই কেবল এই নামগুলি সম্পর্কে কোড লিখতে হবে।
স্প্রিং বুট
স্প্রিংএর এই সুবিধাটির নাম স্প্রিং বুট। স্প্রিং বুট ফ্রেমওয়ার্ক টি স্প্রিং টিম দ্বারা গোড়া থেকে তৈরি করা হয়নি। মূলত বিদ্যমান স্প্রিং ফ্রেমওয়ার্কের ওপর এটি তৈরী হয়েছে। বিদ্যমান স্প্রিং কাঠামোর প্রকল্পগুলো সরাসরি স্প্রিং বুট এপ্লিকেশন এ রূপান্তর কিছুটা দুঃসাধ্য। তবে নতুন প্রকল্প তৈরীতে (গ্রিনফিল্ড প্রজেক্ট) এটি খুব কার্যকরী। [3]
বৈশিষ্ট্য:
- স্বনির্ভর অ্যাপ্লিকেশন তৈরি করা
- সরাসরি টম্যাট বা জেটি এম্বেড করা (ওয়ার ফাইলগুলি স্থাপন করার দরকার নেই)
- আপনার Maven কনফিগারেশন সহজ করার জন্য মতামতযুক্ত 'স্টার্টার' প্রকল্প অবজেক্ট মডেল (POMs) প্রদান করা
- স্বয়ংক্রিয়ভাবে স্প্রিং কনফিগার করা
- একেবারে কোন কোড লেখার এবং এক্সএমএল কনফিগারেশন প্রয়োজন নেই
স্প্রিং টিম (দ্য পাইভোটাল টিম) নিম্নলিখিত তিনটি পন্থা সরবরাহ করেছে এপ্লিকেশন তৈরির ক্ষেত্রে ।
- স্প্রিং বুট CLI টুল ব্যবহার করে
- স্প্রিং এসটিএস আইডিই ব্যবহার করে
- স্প্রিং Initializr ওয়েবসাইট ব্যবহার করে (https://start.spring.io/)
স্প্রিং বুট ব্যবহার করে তিন রকম স্প্রিং-ভিত্তিক অ্যাপ্লিকেশন বিকাশ করা যায় :
- জাভা ভিত্তিক অ্যাপ্লিকেশন
- গ্রোভি অ্যাপ্লিকেশন
- কোটলিন অ্যাপ্লিকেশন
বিভিন্ন পন্থা ও তাতে তৈরী করা এপ্লিকেশনগুলোর সম্পর্ক নিম্নরূপ :
পন্থা | জাভা ভিত্তিক অ্যাপ্লিকেশন | গ্রোভি অ্যাপ্লিকেশন | কোটলিন অ্যাপ্লিকেশন |
---|---|---|---|
স্প্রিং বুট CLI | না | হ্যাঁ | না |
স্প্রিং এসটিএস আইডিই | হ্যাঁ | হ্যাঁ | না |
স্প্রিং Initializr | হ্যাঁ | হ্যাঁ | হ্যাঁ |
স্প্রিং বুট ফ্রেমওয়ার্ক প্রোগ্রামিং মডেল গ্রোভি প্রোগ্রামিং মডেল দ্বারা অনুপ্রাণিত। স্প্রিং বুট অভ্যন্তরীণভাবে ডিফল্ট ইম্পোর্ট এবং কনফিগারেশন সরবরাহ করতে কিছু গ্রোভি ভিত্তিক কৌশল এবং সরঞ্জাম ব্যবহার করে।স্প্রিং বুট ফ্রেমওয়ার্কটিও তার এনোটেশনগুলিতে বিদ্যমান স্প্রিং ফ্রেমওয়ার্ক এনোটেশনগুলিকে সংযুক্ত করে। স্প্রিং বুট ফ্রেমওয়ার্কটি স্পষ্টভাবে নতুন প্রোগ্রামিং মডেলের মাধ্যমে স্প্রিং-জাভা ভিত্তিক অ্যাপ্লিকেশন প্রোগ্রামিং মডেলে পরিবর্তন আনে ।
যদি কোনো স্প্রিং বুট এপ্লিকেশনকে কোনো বিদ্যমান টমক্যাট-এ বা অন্য কোনো এন্টারপ্রাইস জাভা সার্ভার (যেমন : ওয়েবস্পেয়ার , ওয়েবলজিক , জে বস ইত্যাদি ) এ স্থাপন করতে হয় তবে তিনটি স্বজ্ঞাত পরিবর্তন করতে হবে:
- জার বিল্ড থেকে মাভেনের ওয়ার বিল্ডে চলে যান
- আপনার pom.xML ফাইলে স্প্রিং-বুট-মাভেন-প্লাগইন এর ঘোষণা গোপন করুন
- অ্যাপ্লিকেশনটিতে একটি ওয়েব এন্ট্রি পয়েন্ট যুক্ত করুন। এভাবে পরিবর্তন করুন:
@Configuration @ComponentScan @EnableAutoConfiguration public class Application extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(applicationClass, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(applicationClass); } private static Class<Application> applicationClass = Application.class; } @RestController class GreetingController { @RequestMapping("/hello/{name}") String hello(@PathVariable String name) { return "Hello, " + name + "!"; } }