Spring Boot Starter এবং Auto Configuration

Spring Boot এবং Spring MVC Integration - স্প্রিং এমভিসি (Spring MVC) - Java Technologies

349

Spring Boot একটি জনপ্রিয় ফ্রেমওয়ার্ক যা Spring অ্যাপ্লিকেশনগুলোকে দ্রুত ডেভেলপ করতে সহায়ক। Spring Boot Starter এবং Auto Configuration দুটি Spring Boot এর অত্যন্ত গুরুত্বপূর্ণ বৈশিষ্ট্য যা ডেভেলপারদের অ্যাপ্লিকেশন কনফিগারেশন এবং সেটআপ সহজতর করতে সহায়তা করে।

1. Spring Boot Starter:

Spring Boot Starters হল পূর্বনির্ধারিত ডিপেনডেন্সি সেট যা Spring অ্যাপ্লিকেশন তৈরি করার জন্য দরকারি বিভিন্ন লাইব্রেরি অন্তর্ভুক্ত করে। Starter গুলি Spring Boot অ্যাপ্লিকেশনের জন্য নির্দিষ্ট ফাংশনালিটি সহজেই যুক্ত করার জন্য ব্যবহার করা হয়।

উদাহরণ: Common Spring Boot Starters
  1. spring-boot-starter-web:

    • এটি একটি প্রধান স্টার্টার যা Spring MVC, Tomcat (বা অন্য সার্ভার), JSON এবং RESTful Web Services তৈরির জন্য ব্যবহৃত হয়।

    Maven Dependency:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
  2. spring-boot-starter-data-jpa:

    • এটি Spring Data JPA এবং Hibernate সেটআপের জন্য ব্যবহৃত হয়। এটি ডেটাবেসের সাথে কাজ করতে ব্যবহৃত ORM লাইব্রেরি এবং কনফিগারেশন সমূহ অন্তর্ভুক্ত করে।

    Maven Dependency:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    
  3. spring-boot-starter-thymeleaf:

    • এটি Spring MVC এবং Thymeleaf টেমপ্লেট ইঞ্জিনের জন্য ব্যবহৃত হয়। এটি একটি জনপ্রিয় Java-based টেমপ্লেট ইঞ্জিন যা HTML ভিউ রেন্ডারিংয়ের জন্য ব্যবহৃত হয়।

    Maven Dependency:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    
  4. spring-boot-starter-test:

    • এটি Spring Boot অ্যাপ্লিকেশনের টেস্টিং জন্য প্রয়োজনীয় ডিপেনডেন্সি সরবরাহ করে। এতে JUnit, AssertJ, Mockito এবং Spring TestContext Framework অন্তর্ভুক্ত থাকে।

    Maven Dependency:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    

2. Spring Boot Auto Configuration:

Auto Configuration হল Spring Boot এর একটি শক্তিশালী বৈশিষ্ট্য যা Spring অ্যাপ্লিকেশনটি স্বয়ংক্রিয়ভাবে কনফিগার করতে সহায়ক। এটি Spring Framework এর মধ্যে থাকা অনেক কনফিগারেশন এবং Bean সংক্রান্ত সেটিংস স্বয়ংক্রিয়ভাবে প্রয়োগ করে, যাতে ডেভেলপারকে অ্যাপ্লিকেশন কনফিগার করতে কম সময় ব্যয় করতে হয়।

Spring Boot এর auto-configuration মূলত আপনার ব্যবহৃত ডিপেনডেন্সি ভিত্তিক কনফিগারেশন করতে সহায়ক। উদাহরণস্বরূপ, আপনি যদি spring-boot-starter-data-jpa ব্যবহার করেন, তবে Spring Boot স্বয়ংক্রিয়ভাবে Hibernate, JPA এবং ডেটাবেস কনফিগারেশন সেটআপ করবে।

Auto Configuration কাজ করার পদ্ধতি:

  1. @SpringBootApplication:

    • @SpringBootApplication অ্যানোটেশনটি @EnableAutoConfiguration অ্যানোটেশনকে অন্তর্ভুক্ত করে। @EnableAutoConfiguration স্বয়ংক্রিয়ভাবে বিভিন্ন কনফিগারেশন ক্লাস শনাক্ত করে এবং তাদের অ্যাপ্লিকেশনে যুক্ত করে।
    @SpringBootApplication
    public class Application {
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    }
    
  2. Automatic Bean Registration:
    • Spring Boot ক্লাসপাথের মধ্যে উপস্থিত ডিপেনডেন্সি দেখে প্রাসঙ্গিক Bean রেজিস্টার করে।
    • উদাহরণস্বরূপ, আপনি যদি Spring Boot অ্যাপ্লিকেশনে spring-boot-starter-web ব্যবহার করেন, তবে Spring Boot স্বয়ংক্রিয়ভাবে একটি DispatcherServlet এবং Embedded Tomcat সার্ভার কনফিগার করবে।
  3. Configuration Properties:
    • Auto Configuration প্রোপার্টি ফাইল (যেমন application.properties বা application.yml) থেকে কনফিগারেশন সেটিংস গ্রহণ করে। উদাহরণস্বরূপ, ডাটাবেস সংযোগের জন্য প্রয়োজনীয় কনফিগারেশন।

Spring Boot Auto Configuration Example

ধরা যাক, আপনি একটি Spring Boot অ্যাপ্লিকেশন তৈরি করেছেন যা ডাটাবেসের সাথে কাজ করছে। spring-boot-starter-data-jpa ডিপেনডেন্সি ব্যবহার করার মাধ্যমে Spring Boot স্বয়ংক্রিয়ভাবে DataSource, EntityManagerFactory, TransactionManager এবং Hibernate কনফিগারেশন করবে। আপনাকে সেগুলোর জন্য আলাদা কনফিগারেশন ক্লাস লিখতে হবে না।

Maven Dependency for JPA:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

application.properties (Database Configuration)

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.hibernate.ddl-auto=update

Spring Boot, spring-boot-starter-data-jpa ডিপেনডেন্সি এবং application.properties ফাইলের মাধ্যমে JPA এবং ডাটাবেস কনফিগারেশন স্বয়ংক্রিয়ভাবে করবে। আপনাকে কনফিগারেশন সেটআপ করার জন্য কোনও অতিরিক্ত কাজ করতে হবে না।


3. Disabling Auto Configuration

যদি আপনি কোনও নির্দিষ্ট কনফিগারেশন বন্ধ করতে চান, তবে Spring Boot @EnableAutoConfiguration অ্যানোটেশনের সাথে exclude প্যারামিটার ব্যবহার করতে পারেন।

Disabling Auto Configuration Example:

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class })
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
  • এখানে DataSourceAutoConfiguration.class ক্লাসটি বন্ধ করা হয়েছে, যার ফলে Spring Boot ডাটাবেস কনফিগারেশন স্বয়ংক্রিয়ভাবে করবে না।

4. Customizing Auto Configuration

Spring Boot এর auto-configuration ফিচারটি কাস্টমাইজ করা যায়। আপনি যদি কোন নির্দিষ্ট কনফিগারেশন বা Bean কাস্টমাইজ করতে চান, তবে আপনি @Configuration বা @Bean অ্যানোটেশন ব্যবহার করতে পারেন।

Custom Auto Configuration Example:

@Configuration
public class CustomConfig {

    @Bean
    public MyCustomBean myCustomBean() {
        return new MyCustomBean();
    }
}

এখানে MyCustomBean কাস্টম কনফিগারেশন হিসেবে কাজ করবে।


উপসংহার:

Spring Boot Starters এবং Auto Configuration Spring Boot এর দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ডেভেলপারদের দ্রুত এবং কার্যকরী অ্যাপ্লিকেশন ডেভেলপ করতে সাহায্য করে। Starters বিভিন্ন ফিচারের জন্য প্রস্তুত ডিপেনডেন্সি সরবরাহ করে, যা অ্যাপ্লিকেশন তৈরি করার জন্য প্রয়োজনীয় সব কিছু একসাথে নিয়ে আসে। Auto Configuration স্বয়ংক্রিয়ভাবে নির্দিষ্ট ফিচারের জন্য কনফিগারেশন সম্পন্ন করে, যাতে ডেভেলপারকে কম কনফিগারেশন করতে হয় এবং দ্রুত অ্যাপ্লিকেশন তৈরি করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...