Struts 2 এবং Spring Integration

Struts 2 এবং Spring Integration - স্ট্রাটস (Struts 2) - Java Technologies

348

Struts 2 এবং Spring দুটি জনপ্রিয় Java ফ্রেমওয়ার্ক যা সাধারণত ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টে ব্যবহৃত হয়। Struts 2 মূলত Model-View-Controller (MVC) আর্কিটেকচারের উপর ভিত্তি করে কাজ করে, যেখানে Spring একটি ওপেন সোর্স ফ্রেমওয়ার্ক যা ইনভার্সন অব কন্ট্রোল (IoC), ট্রানজেকশন ম্যানেজমেন্ট, এবং ডাটাবেস ইন্টিগ্রেশনসহ বিভিন্ন বৈশিষ্ট্য প্রদান করে।

Struts 2 এবং Spring একসাথে ব্যবহার করলে, আপনি Struts 2 এর MVC ফ্রেমওয়ার্কের সুবিধা পেতে পারেন, এবং Spring এর Dependency Injection (DI), AOP (Aspect Oriented Programming), এবং Transaction Management সাপোর্ট ব্যবহার করতে পারেন। এই দুইটি ফ্রেমওয়ার্ক একত্রে অ্যাপ্লিকেশন তৈরি করতে একটি শক্তিশালী এবং নমনীয় প্ল্যাটফর্ম প্রদান করে।

Struts 2 এবং Spring Integration এর সুবিধা

  1. Separation of Concerns (SoC):
    • Struts 2 Controller হিসেবে কাজ করে, যেখানে Spring ব্যবহৃত হয় Service Layer বা Business Logic এর জন্য। এইভাবে, লজিক এবং কন্ট্রোলার কোড আলাদা রাখা যায়, যা অ্যাপ্লিকেশনের রক্ষণাবেক্ষণ সহজ করে।
  2. Dependency Injection (DI):
    • Spring ফ্রেমওয়ার্কের DI সুবিধা ব্যবহৃত হলে, অ্যাকশন ক্লাস এবং Spring এর সার্ভিসগুলি একে অপরের সাথে সহজভাবে সংযুক্ত হতে পারে, যেখানে Spring নিজে Spring Beans কে ম্যানেজ করে এবং প্রাসঙ্গিক dependency গুলি অ্যাকশনের মধ্যে ইনজেক্ট করে দেয়।
  3. Transaction Management:
    • Spring ফ্রেমওয়ার্কের মাধ্যমে ডাটাবেস লেনদেন ব্যবস্থাপনা সহজ করা যায়। Spring এর ট্রানজেকশন ম্যানেজার ব্যবহার করে আপনি Struts 2 অ্যাপ্লিকেশনের জন্য একটি শক্তিশালী ট্রানজেকশন ম্যানেজমেন্ট সিস্টেম তৈরি করতে পারেন।
  4. Security:
    • Spring Security ব্যবহার করে আপনি অ্যাপ্লিকেশনটি আরও নিরাপদ করতে পারেন। Spring Security এর মাধ্যমে আপনি ইউজার অথেনটিকেশন এবং অথরাইজেশন পরিচালনা করতে পারেন, যা Struts 2 অ্যাপ্লিকেশনে সংযুক্ত করা যেতে পারে।
  5. Easy Integration with Data Sources:
    • Spring ডাটাবেস সংযোগের জন্য একটি সহজ এবং নমনীয় API প্রদান করে। Struts 2 এর মাধ্যমে Spring এর হাইবারনেট বা JPA সাপোর্ট সহ ডাটাবেস ইন্টিগ্রেশন করা সহজ হয়।

Struts 2 এবং Spring Integration এর উদাহরণ

1. Maven Dependency Configuration

প্রথমে, আপনার pom.xml ফাইলে Struts 2 এবং Spring এর জন্য প্রয়োজনীয় ডিপেন্ডেন্সি যোগ করতে হবে।

<dependencies>
    <!-- Struts 2 dependencies -->
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-core</artifactId>
        <version>2.5.22</version>
    </dependency>

    <!-- Spring dependencies -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.10</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>5.3.10</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>5.3.10</version>
    </dependency>

    <!-- Spring and Struts Integration -->
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-spring-plugin</artifactId>
        <version>2.5.22</version>
    </dependency>
</dependencies>

এখানে, struts2-spring-plugin ডিপেনডেন্সি Struts 2 এবং Spring এর মধ্যে ইন্টিগ্রেশন সাপোর্ট করে।

2. Spring Configuration

Spring এর কনফিগারেশন ফাইল applicationContext.xml এ করা হবে, যেখানে আপনি Spring Beans, Transaction Management এবং Dependency Injection কনফিগার করবেন।

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
                           http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- Define a Spring Bean for the service -->
    <bean id="helloService" class="com.example.HelloService" />
</beans>

3. Struts 2 Action Class with Spring Integration

এখন, Struts 2 Action Class তৈরি করা হবে যেখানে Spring Beans ব্যবহার করা হবে। Spring এর Dependency Injection (DI) ব্যবহার করে, Spring Bean গুলি Struts 2 অ্যাকশন ক্লাসে ইনজেক্ট করা হবে।

package com.example;

import com.opensymphony.xwork2.ActionSupport;
import org.springframework.beans.factory.annotation.Autowired;

public class HelloAction extends ActionSupport {

    @Autowired
    private HelloService helloService;

    private String message;

    public String execute() {
        // Spring service ব্যবহার করা
        message = helloService.getMessage();
        return SUCCESS;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}
  • এখানে, HelloService Spring Bean হিসাবে ইনজেক্ট করা হয়েছে, যা getMessage() মেথডের মাধ্যমে অ্যাকশন ক্লাসে ডেটা সরবরাহ করবে।

4. Struts 2 Action Configuration (struts.xml)

struts.xml ফাইলে, অ্যাকশন কনফিগার করা হবে যাতে অ্যাকশনটি Spring ফ্রেমওয়ার্কের সাথে সংযুক্ত হয়।

<?xml version="1.0" encoding="UTF-8"?>
<struts>
    <package name="default" extends="struts-default">
        
        <!-- Spring Integration for Actions -->
        <action name="hello" class="com.example.HelloAction">
            <result>/WEB-INF/content/hello.jsp</result>
        </action>
        
    </package>
</struts>

5. JSP Page (hello.jsp)

অ্যাকশন ক্লাস থেকে ডেটা সরবরাহ করার পর, এটি JSP পেজে প্রদর্শিত হবে।

<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head><title>Struts 2 and Spring Integration Example</title></head>
<body>
    <h1><s:property value="message"/></h1>
</body>
</html>
  • এখানে, s:property ট্যাগটি ব্যবহার করে অ্যাকশন ক্লাস থেকে প্রাপ্ত message প্রপার্টি JSP পেজে প্রদর্শন করা হয়েছে।

Struts 2 এবং Spring Integration এর সুবিধা

  1. Separation of Concerns (SoC):
    • Spring এবং Struts 2 একত্রে ব্যবহৃত হলে, অ্যাকশনের কন্ট্রোলার লজিক (Struts 2) এবং ব্যবসায়িক লজিক (Spring) পৃথক থাকে, যা কোড রক্ষণাবেক্ষণ এবং স্কেলিংকে সহজ করে তোলে।
  2. Dependency Injection (DI):
    • Spring এর DI সিস্টেমের মাধ্যমে Struts 2 অ্যাকশন ক্লাসে Spring Beans ইনজেক্ট করা সম্ভব হয়, যা ডেটা এবং লজিক পৃথক করে কাজ করে।
  3. Transaction Management:
    • Spring এর মাধ্যমে ট্রানজেকশন ম্যানেজমেন্ট খুব সহজ এবং ফ্লেক্সিবল, যা Struts 2 অ্যাপ্লিকেশনে ডেটাবেস লেনদেন পরিচালনা করতে সহায়তা করে।
  4. Easy Testing:
    • Spring এর dependency injection এবং AOP (Aspect-Oriented Programming) এর মাধ্যমে, Struts 2 অ্যাকশন ক্লাসের টেস্টিং সহজ হয়।

সারাংশ

Struts 2 এবং Spring Integration আপনাকে একটি শক্তিশালী এবং নমনীয় প্ল্যাটফর্ম প্রদান করে, যেখানে আপনি Struts 2 এর MVC ফ্রেমওয়ার্ক এবং Spring এর Dependency Injection (DI), Transaction Management, এবং AOP সাপোর্ট একত্রে ব্যবহার করতে পারেন। এই ইন্টিগ্রেশন দ্বারা অ্যাপ্লিকেশনটি আরও শক্তিশালী, স্কেলেবল এবং রক্ষণাবেক্ষণযোগ্য হয়ে ওঠে।

Content added By
Promotion

Are you sure to start over?

Loading...