Arithmetic Operators ( +, -, *, /, % )

স্প্রিং এক্সপ্রেশন ল্যাঙ্গুয়েজ (Spring Expression Language) - Java Technologies

214

Spring Expression Language (SpEL) হল একটি শক্তিশালী এক্সপ্রেশন ল্যাঙ্গুয়েজ যা Spring Framework-এর মধ্যে ব্যবহৃত হয়। এটি ডাইনামিক এক্সপ্রেশন নির্ধারণ করতে ব্যবহৃত হয় এবং JavaBeans প্রপার্টি, মেথড কল, তফসিল এবং অন্যান্য গণনার মাধ্যমে ডেটা প্রসেস করতে সক্ষম।

SpEL এর মাধ্যমে আপনি সহজেই গণনা করতে পারেন এবং জাভা কোডে ব্যবহারযোগ্য এক্সপ্রেশন তৈরি করতে পারেন। এই এক্সপ্রেশনগুলোতে সাধারণ Arithmetic Operators যেমন +, -, *, /, এবং % ব্যবহার করা যায়।


Arithmetic Operators এর ধারণা

SpEL এ নিম্নলিখিত Arithmetic Operators ব্যবহার করা যায়:

১. + (Addition)

এই অপারেটরটি দুটি সংখ্যার যোগফল নির্ধারণ করতে ব্যবহৃত হয়।

উদাহরণ:

String expression = "#{10 + 5}";  // ফলাফল হবে 15

এখানে 10 এবং 5 এর যোগফল হবে ১৫।

২. - (Subtraction)

এই অপারেটরটি দুটি সংখ্যার পার্থক্য নির্ধারণ করতে ব্যবহৃত হয়।

উদাহরণ:

String expression = "#{10 - 5}";  // ফলাফল হবে 5

এখানে 10 থেকে 5 বিয়োগ করলে ফলাফল হবে ৫।

৩. * (Multiplication)

এই অপারেটরটি দুটি সংখ্যার গুণফল নির্ধারণ করতে ব্যবহৃত হয়।

উদাহরণ:

String expression = "#{10 * 5}";  // ফলাফল হবে 50

এখানে 10 এবং 5 এর গুণফল হবে ৫০।

৪. / (Division)

এই অপারেটরটি দুটি সংখ্যার ভাগফল নির্ধারণ করতে ব্যবহৃত হয়। অবশ্যই, ভাগফলে কোনো ভগ্নাংশ (fractional) থাকলে সেটি আউটপুট হবে।

উদাহরণ:

String expression = "#{10 / 2}";  // ফলাফল হবে 5

এখানে 10 কে 2 দ্বারা ভাগ করলে ফলাফল হবে ৫।

৫. % (Modulus)

এই অপারেটরটি দুটি সংখ্যার ভাগফল থেকে অবশিষ্টাংশ (remainder) নির্ধারণ করতে ব্যবহৃত হয়।

উদাহরণ:

String expression = "#{10 % 3}";  // ফলাফল হবে 1

এখানে 10 কে 3 দ্বারা ভাগ করলে অবশিষ্টাংশ (remainder) হবে ১।


SpEL এ Arithmetic Operators ব্যবহার

উদাহরণ ১: SpEL ব্যবহার করে Arithmetic Operators

Spring Expression Language (SpEL) এর মাধ্যমে একটি সংখ্যা গণনা করা যাক। নিচে একটি উদাহরণ দেখানো হলো, যেখানে Arithmetic Operators ব্যবহার করা হচ্ছে:

import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;

public class SpELExample {

    public static void main(String[] args) {
        // SpEL expression parser তৈরি
        ExpressionParser parser = new SpelExpressionParser();
        StandardEvaluationContext context = new StandardEvaluationContext();
        
        // গণনা করতে SpEL এক্সপ্রেশন ব্যবহার
        Integer additionResult = parser.parseExpression("#{10 + 5}").getValue(context, Integer.class);
        Integer subtractionResult = parser.parseExpression("#{10 - 5}").getValue(context, Integer.class);
        Integer multiplicationResult = parser.parseExpression("#{10 * 5}").getValue(context, Integer.class);
        Integer divisionResult = parser.parseExpression("#{10 / 2}").getValue(context, Integer.class);
        Integer modulusResult = parser.parseExpression("#{10 % 3}").getValue(context, Integer.class);
        
        // ফলাফল প্রদর্শন
        System.out.println("Addition Result: " + additionResult);         // 15
        System.out.println("Subtraction Result: " + subtractionResult);   // 5
        System.out.println("Multiplication Result: " + multiplicationResult); // 50
        System.out.println("Division Result: " + divisionResult);         // 5
        System.out.println("Modulus Result: " + modulusResult);           // 1
    }
}

উপরে একটি প্রোগ্রাম তৈরি করা হয়েছে যেখানে SpEL এর মাধ্যমে Arithmetic Operators ব্যবহার করা হয়েছে। প্রতিটি গণনা জন্য SpEL এক্সপ্রেশন প্রদান করা হয়েছে, এবং পরে সেই এক্সপ্রেশনগুলির ফলাফল প্রিন্ট করা হয়েছে।


SpEL এর Arithmetic Operators এর সুবিধা

  1. ডাইনামিক এক্সপ্রেশন: SpEL ব্যবহার করে আপনি চলমান সময়ে গণনা বা এক্সপ্রেশন তৈরি করতে পারেন। এটি খুবই কার্যকরী যখন আপনি চলতি অ্যাপ্লিকেশনে ডেটার উপর ভিত্তি করে গণনা করতে চান।
  2. সহজ ইন্টিগ্রেশন: SpEL সরাসরি Spring Framework এর অন্যান্য অংশ যেমন Spring EL, Spring Beans, এবং Spring Security এর সাথে কাজ করতে পারে।
  3. এডভান্সড ক্যালকুলেশন: আপনি SpEL এর মাধ্যমে বিভিন্ন ধরনের ক্যালকুলেশন যেমন ভেরিয়েবল অ্যাক্সেস, মেথড কল, এবং কন্ডিশনাল লজিক সহজেই পরিচালনা করতে পারবেন।

উপসংহার

Spring Expression Language (SpEL) এ Arithmetic Operators (যেমন +, -, *, /, %) ব্যবহার করে আপনি সহজেই বিভিন্ন ধরনের গণনা করতে পারেন। এই অপারেটরগুলোর সাহায্যে ডাইনামিক এক্সপ্রেশন তৈরি করা যায়, যা JavaBeans, মেথড কল বা অন্য কোনো Spring API থেকে ডেটা প্রসেস করতে কার্যকর।

Content added By

Spring Expression Language (SpEL) হল একটি শক্তিশালী টুল যা Spring ফ্রেমওয়ার্কের মধ্যে এক্সপ্রেশন অপারেশন চালাতে ব্যবহৃত হয়। Relational Operators হল এক ধরনের অপারেটর যা দুটি মানের মধ্যে সম্পর্ক নির্ধারণ করতে ব্যবহৃত হয়। SpEL-এ, এগুলো সাধারণত গাণিতিক এক্সপ্রেশন বা কন্ডিশনাল লজিক চেক করতে ব্যবহৃত হয়।

SpEL এ নিম্নলিখিত Relational Operators ব্যবহার করা যায়:

  • < (কম)
  • > (বড়)
  • == (সমান)
  • <= (ছোট বা সমান)
  • >= (বড় বা সমান)
  • != (অসমান)

এই অপারেটরগুলো দিয়ে স্প্রিং অ্যাপ্লিকেশনে ডেটার তুলনা করা যায় এবং বিভিন্ন লজিক্যাল সিদ্ধান্ত নেওয়া যায়।


SpEL-এ Relational Operators এর ব্যবহার

1. < (কম)

এই অপারেটরটি দুটি মানের মধ্যে তুলনা করে দেখে কোনটি ছোট।

@Value("#{10 < 20}")
private boolean isLessThan; // true

ব্যাখ্যা:
এখানে 10 < 20 এক্সপ্রেশনটি true রিটার্ন করবে, কারণ 10, 20 থেকে ছোট।

2. > (বড়)

এই অপারেটরটি দুটি মানের মধ্যে তুলনা করে দেখে কোনটি বড়।

@Value("#{30 > 20}")
private boolean isGreaterThan; // true

ব্যাখ্যা:
এখানে 30 > 20 এক্সপ্রেশনটি true রিটার্ন করবে, কারণ 30, 20 থেকে বড়।

3. == (সমান)

এই অপারেটরটি দুটি মানের সমতা যাচাই করে।

@Value("#{10 == 10}")
private boolean isEqual; // true

ব্যাখ্যা:
এখানে 10 == 10 এক্সপ্রেশনটি true রিটার্ন করবে, কারণ 10 সমান 10 এর সাথে।

4. <= (ছোট বা সমান)

এই অপারেটরটি দুটি মানের মধ্যে তুলনা করে দেখে কোনটি ছোট বা সমান।

@Value("#{10 <= 20}")
private boolean isLessThanOrEqual; // true

ব্যাখ্যা:
এখানে 10 <= 20 এক্সপ্রেশনটি true রিটার্ন করবে, কারণ 10 ছোট বা সমান 20 এর।

5. >= (বড় বা সমান)

এই অপারেটরটি দুটি মানের মধ্যে তুলনা করে দেখে কোনটি বড় বা সমান।

@Value("#{20 >= 10}")
private boolean isGreaterThanOrEqual; // true

ব্যাখ্যা:
এখানে 20 >= 10 এক্সপ্রেশনটি true রিটার্ন করবে, কারণ 20 বড় বা সমান 10 এর।

6. != (অসমান)

এই অপারেটরটি দুটি মানের মধ্যে অসমতা যাচাই করে।

@Value("#{10 != 20}")
private boolean isNotEqual; // true

ব্যাখ্যা:
এখানে 10 != 20 এক্সপ্রেশনটি true রিটার্ন করবে, কারণ 10 এবং 20 অসমান।


স্প্রিং কনফিগারেশনে Relational Operators এর ব্যবহার

SpEL এর Relational Operators কে Spring Beans বা অন্যান্য স্প্রিং কনফিগারেশনে ব্যবহার করা যেতে পারে। নিচে একটি উদাহরণ দেওয়া হল যেখানে SpEL দিয়ে Bean প্রপার্টি গুলি তুলনা করা হচ্ছে।

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class ComparisonExample {

    @Value("#{10 < 20}")
    private boolean isLessThan;

    @Value("#{30 > 20}")
    private boolean isGreaterThan;

    @Value("#{10 == 10}")
    private boolean isEqual;

    @Value("#{10 <= 20}")
    private boolean isLessThanOrEqual;

    @Value("#{20 >= 10}")
    private boolean isGreaterThanOrEqual;

    @Value("#{10 != 20}")
    private boolean isNotEqual;

    public void printComparisonResults() {
        System.out.println("Is 10 < 20? " + isLessThan);
        System.out.println("Is 30 > 20? " + isGreaterThan);
        System.out.println("Is 10 == 10? " + isEqual);
        System.out.println("Is 10 <= 20? " + isLessThanOrEqual);
        System.out.println("Is 20 >= 10? " + isGreaterThanOrEqual);
        System.out.println("Is 10 != 20? " + isNotEqual);
    }
}

ব্যাখ্যা:

  • @Value("#{10 < 20}") দিয়ে 10 এবং 20 এর তুলনা করা হয়েছে, যেখানে ফলাফল true হবে।
  • অন্যান্য তুলনাগুলি একইভাবে এক্সপ্রেশন হিসাবে ব্যবহার করা হয়েছে।

SpEL-এ Relational Operators এর ব্যবহার ইন্টারনাল লজিক বা কন্ডিশনাল চেক করতে খুবই কার্যকরী। এটি স্প্রিং কনফিগারেশন এবং Spring Beans ডায়নামিকভাবে নিয়ন্ত্রণ করতে সাহায্য করে।

Content added By

Spring Expression Language (SpEL) বিভিন্ন ধরনের অপারেটর সাপোর্ট করে, যার মধ্যে Logical Operators যেমন and, or, এবং not রয়েছে। এই অপারেটরগুলি লজিক্যাল শর্তগুলি মূল্যায়ন করার জন্য ব্যবহৃত হয় এবং এর মাধ্যমে আপনি আরও জটিল শর্তগুলি সহজে নির্ধারণ করতে পারেন।

SpEL-এর লজিক্যাল অপারেটরগুলি সাধারণত Boolean এক্সপ্রেশনগুলোতে ব্যবহৃত হয় এবং এটি একটি নির্দিষ্ট শর্ত পূর্ণ হলে true অথবা false রিটার্ন করে।


SpEL Logical Operators

1. and (&&)

and অপারেটর ব্যবহার করা হয় দুটি বা ততোধিক শর্তের সাথে AND অপারেশন করতে। এটি শুধুমাত্র তখনই true রিটার্ন করে যখন দুটি শর্তই true হয়।

উদাহরণ:

String expression = "#{(10 > 5) and (20 < 30)}";
boolean result = parser.parseExpression(expression).getValue(Boolean.class);
System.out.println(result);  // Output: true

এখানে, 10 > 5 এবং 20 < 30 দুটি শর্তই true হওয়ায় and অপারেটর ফলস্বরূপ true রিটার্ন করবে।


2. or (||)

or অপারেটর দুটি বা ততোধিক শর্তের মধ্যে OR অপারেশন করতে ব্যবহৃত হয়। এটি যদি কোনো একটি শর্তও true হয়, তবে পুরো এক্সপ্রেশনটি true রিটার্ন করবে।

উদাহরণ:

String expression = "#{(10 > 5) or (20 > 30)}";
boolean result = parser.parseExpression(expression).getValue(Boolean.class);
System.out.println(result);  // Output: true

এখানে, 10 > 5 শর্তটি true এবং 20 > 30 শর্তটি false, কিন্তু or অপারেটর পুরো এক্সপ্রেশনকে true রিটার্ন করবে কারণ or অপারেটর শুধু একটি শর্ত true হলেই ফলস্বরূপ true দেয়।


3. not (!)

not অপারেটর একটি লজিক্যাল negation বা reverse অপারেশন করে, অর্থাৎ এটি একটি শর্তের বিপরীত ফলাফল প্রদান করে। যদি শর্তটি true হয়, তবে not অপারেটর false রিটার্ন করবে এবং যদি শর্তটি false হয়, তবে true রিটার্ন করবে।

উদাহরণ:

String expression = "#{not (10 > 5)}";
boolean result = parser.parseExpression(expression).getValue(Boolean.class);
System.out.println(result);  // Output: false

এখানে, 10 > 5 শর্তটি true, কিন্তু not অপারেটর শর্তটির বিপরীত ফলাফল (যা হবে false) রিটার্ন করবে।


SpEL Logical Operators এর কম্পোজিশন

এগুলি একসাথে ব্যবহার করা যেতে পারে জটিল শর্তের জন্য, যেমন:

String expression = "#{(10 > 5) and (20 > 15) or not (5 < 2)}";
boolean result = parser.parseExpression(expression).getValue(Boolean.class);
System.out.println(result);  // Output: true

এখানে, প্রথম দুটি শর্ত (10 > 5) এবং (20 > 15) সত্য হওয়ায় and অপারেটর true রিটার্ন করবে। এরপর not (5 < 2) এক্সপ্রেশন true হবে কারণ 5 < 2 মিথ্যা, তাই not এটিকে true করবে। পরিশেষে, or অপারেটর পুরো এক্সপ্রেশনকে true রিটার্ন করবে।


সার্বিক উপসংহার

SpEL (Spring Expression Language) এর logical operators যেমন and, or, এবং not স্প্রিং কনফিগারেশন এবং এক্সপ্রেশনগুলিতে লজিক্যাল শর্তগুলি মূল্যায়ন করার জন্য ব্যবহৃত হয়। এগুলি ব্যবহার করে আপনি Spring Beans এবং অন্যান্য কনফিগারেশন বা ডাইনামিক এক্সপ্রেশনগুলিতে আরও শক্তিশালী এবং নমনীয় শর্ত যুক্ত করতে পারেন।

এই অপারেটরগুলি আপনাকে একাধিক শর্তের সাথে কাজ করার সময় আরও সঠিক ফলাফল পেতে সাহায্য করে এবং SpEL-এর কার্যকারিতা এবং নমনীয়তা বৃদ্ধি করে।


Content added By

SpEL Conditional Operators (Ternary Operator) কী?

স্প্রিং এক্সপ্রেশন ল্যাঙ্গুয়েজ (SpEL) এ Conditional Operator বা Ternary Operator হল একটি সহজ উপায় যার মাধ্যমে শর্তের ভিত্তিতে দুটি ভিন্ন মানের মধ্যে একটি নির্বাচন করা হয়। এটি একটি if-else শর্তের মতো কাজ করে, তবে এটি আরও সংক্ষিপ্ত এবং এক লাইনে লিখতে সহায়ক।

SpEL এর ? : অপারেটরকে Ternary Operator বা Conditional Operator বলা হয় এবং এটি condition ? value_if_true : value_if_false ফরম্যাটে ব্যবহৃত হয়। এই অপারেটরটি একটি শর্তের ভিত্তিতে দুটি মানের মধ্যে একটি নির্বাচন করতে ব্যবহৃত হয়।


Conditional Operator এর গঠন

condition ? value_if_true : value_if_false
  • condition: যেটি যাচাই করা হবে। এটি একটি বুলিয়ান এক্সপ্রেশন হতে পারে যা true অথবা false রিটার্ন করে।
  • value_if_true: যদি শর্ত সত্য (true) হয়, তবে এই মানটি রিটার্ন করা হবে।
  • value_if_false: যদি শর্ত মিথ্যা (false) হয়, তবে এই মানটি রিটার্ন করা হবে।

SpEL এ Conditional Operator ব্যবহার

১. সরল উদাহরণ

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class GreetingService {

    @Value("#{ 10 > 5 ? 'Greater than 5' : 'Less than or equal to 5' }")
    private String message;

    public String getMessage() {
        return message;
    }
}

ব্যাখ্যা:

  • 10 > 5 ? 'Greater than 5' : 'Less than or equal to 5': এই SpEL এক্সপ্রেশনটি যাচাই করবে যে ১০ বড় কি ৫ এর থেকে। যদি সত্যি হয়, তবে 'Greater than 5' রিটার্ন হবে, অন্যথায় 'Less than or equal to 5' রিটার্ন হবে।
  • message ভেরিয়েবলটি 'Greater than 5' এর মান গ্রহণ করবে, কারণ ১০ সত্যিই ৫ এর চেয়ে বড়।

২. স্প্রিং কনফিগারেশন ফাইলে SpEL Conditional ব্যবহার

SpEL ব্যবহার করে স্প্রিং কনফিগারেশন ফাইলে শর্তাধীন মান নির্ধারণ করা যেতে পারে। নিচে একটি উদাহরণ দেওয়া হলো:

<bean id="greetingService" class="com.example.GreetingService">
    <property name="message" value="#{systemProperties['os.name'].contains('Windows') ? 'Hello Windows User!' : 'Hello Unix User!'}"/>
</bean>

ব্যাখ্যা:

  • systemProperties['os.name'].contains('Windows'): এই শর্তটি চেক করবে যদি os.name প্রোপার্টি 'Windows' শব্দটি ধারণ করে।
  • যদি শর্তটি সত্য হয়, তাহলে 'Hello Windows User!' রিটার্ন হবে, অন্যথায় 'Hello Unix User!' রিটার্ন হবে।

৩. ব্যবহারকারী ইনপুটের উপর ভিত্তি করে শর্ত নির্বাচন

<bean id="userService" class="com.example.UserService">
    <property name="userStatus" value="#{user.age >= 18 ? 'Adult' : 'Minor'}"/>
</bean>

ব্যাখ্যা:

  • user.age >= 18 ? 'Adult' : 'Minor': এটি ব্যবহারকারীর বয়স চেক করবে। যদি বয়স ১৮ বা তার বেশি হয়, তাহলে 'Adult' রিটার্ন করবে, অন্যথায় 'Minor' রিটার্ন করবে।

SpEL এর Conditional Operators এর উদাহরণ

  1. সরল শর্ত:

    "#{2 + 2 == 4 ? 'True' : 'False'}"
    

    এই এক্সপ্রেশনটি True রিটার্ন করবে, কারণ শর্তটি সত্যি।

  2. বিভিন্ন ধরনের শর্ত:

    "#{user.name == 'John' ? 'Hello, John!' : 'Hello, Guest!'}"
    

    যদি user.name এর মান 'John' হয়, তাহলে এটি 'Hello, John!' রিটার্ন করবে, অন্যথায় 'Hello, Guest!' রিটার্ন হবে।

  3. বুলিয়ান শর্ত:

    "#{true ? 'Yes' : 'No'}"
    

    এটি 'Yes' রিটার্ন করবে, কারণ শর্তটি সত্য।

  4. নম্বর শর্ত:

    "#{age > 18 ? 'Eligible' : 'Not Eligible'}"
    

    যদি age ১৮ এর বেশি হয়, তাহলে 'Eligible' রিটার্ন হবে, অন্যথায় 'Not Eligible' রিটার্ন হবে।


SpEL এর Conditional Operator ব্যবহার করার সুবিধা

  1. সংক্ষিপ্ততা: SpEL এর মাধ্যমে আপনি শর্তের ভিত্তিতে দ্রুত মান পরিবর্তন করতে পারেন। এটি কোডটিকে ছোট, পরিষ্কার, এবং আরও পাঠযোগ্য করে তোলে।
  2. ডাইনামিক কনফিগারেশন: স্প্রিং কনফিগারেশন ফাইলে SpEL এর মাধ্যমে শর্তানুযায়ী বিভিন্ন মান নির্বাচন করা যায়।
  3. পারফরম্যান্স: SpEL শর্তের মাধ্যমে এক্সপ্রেশন দ্রুত এবং কার্যকরভাবে প্রক্রিয়া করা সম্ভব, যা কোডে লজিক্যাল অপারেশন সহজ করে।

সারাংশ

SpEL এর Conditional Operator বা Ternary Operator শর্তের ভিত্তিতে দুটি মানের মধ্যে একটি নির্বাচন করতে ব্যবহৃত হয়। এটি condition ? value_if_true : value_if_false ফরম্যাটে কাজ করে এবং কোডের মধ্যে সহজ শর্তানুযায়ী মান নির্বাচন করতে সাহায্য করে। SpEL এর এই অপারেটরটি স্প্রিং কনফিগারেশন ফাইল, সার্ভিস, এবং অন্যান্য স্প্রিং অ্যাপ্লিকেশন অ্যাক্টিভিটির মধ্যে ডাইনামিক কনফিগারেশন এবং লজিক প্রয়োগে খুবই কার্যকর।

Content added By

SpEL অপারেটর কি?

Spring Expression Language (SpEL) একটি শক্তিশালী এক্সপ্রেশন ল্যাঙ্গুয়েজ যা Spring Framework এর মধ্যে ব্যবহৃত হয়। SpEL এর মাধ্যমে আপনি বিভিন্ন ধরণের অপারেটর ব্যবহার করতে পারেন, যেমন অ্যাথ্রিবিউট অ্যাক্সেস, গণনা, কন্ডিশনাল এক্সপ্রেশন, লজিক্যাল অপারেটর ইত্যাদি। SpEL অপারেটরগুলি ডাইনামিক এক্সপ্রেশন তৈরি করতে ব্যবহৃত হয়, যা Spring Beans বা অবজেক্টের প্রপার্টি অ্যাক্সেস এবং ম্যানিপুলেট করার জন্য উপকারী।

SpEL এর অপারেটরগুলোর মধ্যে প্রধান কয়েকটি অপারেটরের ব্যবহার নিম্নে আলোচনা করা হয়েছে।


SpEL অপারেটরগুলোর ধরন

  1. গণনামূলক অপারেটর (Arithmetic Operators)
  2. লজিক্যাল অপারেটর (Logical Operators)
  3. সম্পর্ক অপারেটর (Relational Operators)
  4. ত্রৈমাসিক অপারেটর (Ternary Operator)
  5. অ্যাথ্রিবিউট এক্সপ্রেশন অপারেটর (Attribute Access Operator)
  6. মেথড কল অপারেটর (Method Call Operator)
  7. ফাংশনাল অপারেটর (Function Operators)
  8. কনস্ট্যান্ট অপারেটর (Constant Operator)

১. গণনামূলক অপারেটর (Arithmetic Operators)

SpEL এ গণনামূলক অপারেটর ব্যবহার করে অ্যাডিশন, সাবট্রাকশন, মাল্টিপ্লিকেশন, ডিভিশন এবং মডুলাস অপারেশন করা যায়।

উদাহরণ:

ExpressionParser parser = new SpelExpressionParser();

// অ্যাডিশন
Integer addition = parser.parseExpression("10 + 5").getValue(Integer.class);
System.out.println("Addition: " + addition); // Output: 15

// সাবট্রাকশন
Integer subtraction = parser.parseExpression("10 - 5").getValue(Integer.class);
System.out.println("Subtraction: " + subtraction); // Output: 5

// মাল্টিপ্লিকেশন
Integer multiplication = parser.parseExpression("10 * 5").getValue(Integer.class);
System.out.println("Multiplication: " + multiplication); // Output: 50

// ডিভিশন
Integer division = parser.parseExpression("10 / 5").getValue(Integer.class);
System.out.println("Division: " + division); // Output: 2

// মডুলাস
Integer modulus = parser.parseExpression("10 % 3").getValue(Integer.class);
System.out.println("Modulus: " + modulus); // Output: 1

২. লজিক্যাল অপারেটর (Logical Operators)

SpEL এর মাধ্যমে লজিক্যাল অপারেটর ব্যবহার করে AND, OR, NOT ইত্যাদি অপারেশন করা যায়।

উদাহরণ:

ExpressionParser parser = new SpelExpressionParser();

// AND অপারেটর
Boolean andOperation = parser.parseExpression("true and false").getValue(Boolean.class);
System.out.println("AND Operation: " + andOperation); // Output: false

// OR অপারেটর
Boolean orOperation = parser.parseExpression("true or false").getValue(Boolean.class);
System.out.println("OR Operation: " + orOperation); // Output: true

// NOT অপারেটর
Boolean notOperation = parser.parseExpression("not true").getValue(Boolean.class);
System.out.println("NOT Operation: " + notOperation); // Output: false

৩. সম্পর্ক অপারেটর (Relational Operators)

SpEL-এ সম্পর্ক অপারেটর ব্যবহার করে কোনো মানের মধ্যে তুলনা করা যায়, যেমন ==, !=, >, <, >=, <=

উদাহরণ:

ExpressionParser parser = new SpelExpressionParser();

// সমান
Boolean equal = parser.parseExpression("5 == 5").getValue(Boolean.class);
System.out.println("Equal: " + equal); // Output: true

// ভিন্ন
Boolean notEqual = parser.parseExpression("5 != 3").getValue(Boolean.class);
System.out.println("Not Equal: " + notEqual); // Output: true

// বড়
Boolean greaterThan = parser.parseExpression("10 > 5").getValue(Boolean.class);
System.out.println("Greater Than: " + greaterThan); // Output: true

// ছোট
Boolean lessThan = parser.parseExpression("5 < 10").getValue(Boolean.class);
System.out.println("Less Than: " + lessThan); // Output: true

// বড় বা সমান
Boolean greaterThanOrEqual = parser.parseExpression("10 >= 5").getValue(Boolean.class);
System.out.println("Greater Than or Equal: " + greaterThanOrEqual); // Output: true

// ছোট বা সমান
Boolean lessThanOrEqual = parser.parseExpression("5 <= 10").getValue(Boolean.class);
System.out.println("Less Than or Equal: " + lessThanOrEqual); // Output: true

৪. ত্রৈমাসিক অপারেটর (Ternary Operator)

SpEL-এ ত্রৈমাসিক অপারেটর (conditional operator) ব্যবহার করে সরল কন্ডিশনাল এক্সপ্রেশন তৈরি করা যায়।

উদাহরণ:

ExpressionParser parser = new SpelExpressionParser();

// ত্রৈমাসিক অপারেটর
String result = parser.parseExpression("10 > 5 ? 'Yes' : 'No'").getValue(String.class);
System.out.println("Ternary Operator Result: " + result); // Output: Yes

৫. অ্যাথ্রিবিউট এক্সপ্রেশন অপারেটর (Attribute Access Operator)

SpEL ব্যবহার করে কোনো অবজেক্টের প্রপার্টি অ্যাক্সেস করা যায়। উদাহরণস্বরূপ, employee.name দিয়ে Employee অবজেক্টের name ফিল্ড অ্যাক্সেস করা।

উদাহরণ:

public class Employee {
    private String name;

    public Employee(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

ExpressionParser parser = new SpelExpressionParser();
Employee employee = new Employee("John");

// অ্যাথ্রিবিউট এক্সপ্রেশন
String employeeName = parser.parseExpression("name").getValue(employee, String.class);
System.out.println("Employee Name: " + employeeName); // Output: John

৬. মেথড কল অপারেটর (Method Call Operator)

SpEL-এ মেথড কল করার জন্য .() ব্যবহার করা হয়। আপনি যে কোন মেথড কল করতে পারবেন এবং তার রিটার্ন ভ্যালু ব্যবহার করতে পারবেন।

উদাহরণ:

public class Employee {
    private String name;

    public Employee(String name) {
        this.name = name;
    }

    public String getGreeting() {
        return "Hello, " + name;
    }
}

ExpressionParser parser = new SpelExpressionParser();
Employee employee = new Employee("John");

// মেথড কল
String greeting = parser.parseExpression("getGreeting()").getValue(employee, String.class);
System.out.println("Greeting: " + greeting); // Output: Hello, John

৭. ফাংশনাল অপারেটর (Function Operators)

SpEL-এ বিভিন্ন ফাংশনাল অপারেটর যেমন T(className) ব্যবহার করে Java ক্লাসের কনস্ট্যান্ট এক্সেস করা যায়।

উদাহরণ:

ExpressionParser parser = new SpelExpressionParser();

// Math.PI এর মান ব্যবহার
Double piValue = parser.parseExpression("T(java.lang.Math).PI").getValue(Double.class);
System.out.println("PI Value: " + piValue); // Output: 3.141592653589793

৮. কনস্ট্যান্ট অপারেটর (Constant Operator)

SpEL-এ কনস্ট্যান্ট মান ব্যবহার করতে T() ব্যবহার করা হয়, যা কোনো নির্দিষ্ট ক্লাসের কনস্ট্যান্ট এক্সপ্রেস করতে সহায়তা করে।

উদাহরণ:

ExpressionParser parser = new SpelExpressionParser();

// Static Constant Access
Integer maxValue = parser.parseExpression("T(java.lang.Integer).MAX_VALUE").getValue(Integer.class);
System.out.println("Max Integer Value: " + maxValue); // Output: 2147483647

সারাংশ

SpEL (Spring Expression Language) এর অপারেটরগুলি Spring অ্যাপ্লিকেশনে বিভিন্ন ধরনের এক্সপ্রেশন তৈরি করতে সহায়ক। এগুলোর মাধ্যমে আপনি গণনা, তুলনা, কন্ডিশনাল লজিক, মেথড কল, ফাংশন এক্সপ্রেশন এবং আরো অনেক কিছু করতে পারেন। SpEL এর অপারেটরগুলোর ব্যবহার Spring Beans এবং অবজেক্ট ম্যানিপুলেশন সহজ এবং কার্যকরী করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...