Spring Expression Language (SpEL) কী?
SpEL (Spring Expression Language) হলো একটি শক্তিশালী এক্সপ্রেশন ল্যাঙ্গুয়েজ যা Spring Framework এ ব্যবহৃত হয়। SpEL ব্যবহার করে আপনি Spring Beans, প্রপার্টি, মেথড কল এবং কন্ডিশনাল লজিককে খুব সহজে এক্সপ্রেস করতে পারেন। SpEL একটি ইউনিভার্সাল এক্সপ্রেশন ল্যাঙ্গুয়েজ হিসেবে Spring কনফিগারেশনে ডাইনামিক প্রপার্টি অ্যাক্সেস এবং Bean অ্যাক্সেস করতে সহায়তা করে।
এই টিউটোরিয়ালে Property Access এবং Bean Access এর ব্যবহার দেখানো হবে, যা SpEL এর অত্যন্ত গুরুত্বপূর্ণ বৈশিষ্ট্য।
Property Access in SpEL
SpEL এর মাধ্যমে Spring Beans বা JavaBeans এর প্রপার্টি অ্যাক্সেস করা যায়। #{} এর মাধ্যমে স্প্রিং কনটেক্সটের মধ্যে থাকা প্রপার্টি এক্সেস করা সম্ভব।
1. Property Access Syntax
SpEL এ প্রপার্টি অ্যাক্সেস করার সঠিক সিনট্যাক্স:
#{bean.property}
এখানে, bean হলো Spring Bean এর আইডি এবং property হলো Bean এর প্রপার্টি নাম।
উদাহরণ
ধরা যাক, আমাদের একটি Person ক্লাস রয়েছে যার name প্রপার্টি রয়েছে, এবং আমরা Spring XML কনফিগারেশনে SpEL ব্যবহার করে name প্রপার্টি অ্যাক্সেস করতে চাই।
Person ক্লাস:
package com.example.model;
public class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
XML কনফিগারেশন:
<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">
<bean id="person" class="com.example.model.Person">
<constructor-arg value="John Doe"/>
</bean>
<bean id="message" class="java.lang.String">
<constructor-arg value="#{person.name}"/>
</bean>
</beans>
এখানে, SpEL #{person.name} ব্যবহার করে Person Bean এর name প্রপার্টি অ্যাক্সেস করা হয়েছে।
Bean Access in SpEL
SpEL এর মাধ্যমে Spring Bean গুলোকে ডাইনামিকভাবে এক্সপ্রেস করা এবং তাদের মেথড বা প্রপার্টি অ্যাক্সেস করা যায়। Bean অ্যাক্সেসের মাধ্যমে আপনি স্প্রিং কনটেক্সট থেকে কোনো Bean কে কল করতে পারবেন।
1. Bean Access Syntax
SpEL এ Bean অ্যাক্সেসের জন্য নিম্নলিখিত সিনট্যাক্স ব্যবহৃত হয়:
#{beanName.property}
এখানে, beanName হলো Spring Bean এর আইডি এবং property হলো Bean এর প্রপার্টি বা মেথড যা আপনি অ্যাক্সেস করতে চান।
উদাহরণ
ধরা যাক, আমাদের একটি MessageService ক্লাস রয়েছে এবং এর getMessage() মেথড রয়েছে। আমরা SpEL ব্যবহার করে এই মেথড কল করতে চাই।
MessageService ক্লাস:
package com.example.service;
public class MessageService {
private String message;
public MessageService(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
}
XML কনফিগারেশন:
<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">
<bean id="messageService" class="com.example.service.MessageService">
<constructor-arg value="Hello from SpEL!"/>
</bean>
<bean id="greeting" class="com.example.model.Greeting">
<property name="greetingMessage" value="#{messageService.getMessage()}"/>
</bean>
</beans>
এখানে, SpEL #{messageService.getMessage()} ব্যবহার করে MessageService Bean এর getMessage() মেথড কল করা হয়েছে।
2. Bean Access Using Method Invocation
SpEL মেথড কল করার জন্যও ব্যবহার করা যায়। এর মাধ্যমে Spring Bean এর মেথডকে ডাইনামিকভাবে কল করা সম্ভব।
উদাহরণ:
<bean id="messageService" class="com.example.service.MessageService">
<constructor-arg value="Welcome to SpEL!" />
</bean>
<bean id="greeting" class="com.example.model.Greeting">
<property name="greetingMessage" value="#{messageService.getMessage().toUpperCase()}"/>
</bean>
এখানে, SpEL messageService.getMessage() মেথড কল করবে এবং তারপরে toUpperCase() মেথড ব্যবহার করবে।
SpEL ব্যবহার করার জন্য Java Configuration
Spring Java configuration পদ্ধতি ব্যবহার করে Bean অ্যাক্সেস এবং প্রপার্টি অ্যাক্সেসের উদাহরণ দেওয়া হলো।
Java Configuration Class:
package com.example.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.beans.factory.annotation.Value;
@Configuration
public class AppConfig {
@Bean
public MessageService messageService() {
return new MessageService("Hello from Java Config!");
}
@Bean
public Greeting greeting() {
return new Greeting(messageService().getMessage());
}
}
এখানে, messageService().getMessage() মেথড কল করা হয়েছে SpEL এর মাধ্যমে।
SpEL এর কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য:
- Property Access: Beans বা JavaBeans এর প্রপার্টি এক্সপ্রেস করতে SpEL ব্যবহার করা হয়।
- Method Invocation: Spring Beans এর মেথড কল করার জন্য SpEL ব্যবহার করা যায়।
- Mathematical Operations: SpEL ব্যবহার করে গাণিতিক অপারেশনও করা সম্ভব।
- Conditionals: SpEL এর মাধ্যমে কন্ডিশনাল লজিকও প্রয়োগ করা যায়।
সারাংশ
SpEL (Spring Expression Language) Spring Framework-এর একটি শক্তিশালী উপাদান, যা Spring Beans এবং তাদের প্রপার্টি বা মেথড এক্সপ্রেস করতে সাহায্য করে। SpEL ব্যবহার করে Spring Beans এর প্রপার্টি অ্যাক্সেস এবং মেথড কল করা সম্ভব। Spring XML বা Java কনফিগারেশন পদ্ধতিতে SpEL ব্যবহারের মাধ্যমে আপনি আরো ডাইনামিক এবং নমনীয় কনফিগারেশন তৈরি করতে পারেন।
SpEL এবং Spring Bean
Spring Expression Language (SpEL) ব্যবহার করে Spring Bean-এর প্রপার্টি অ্যাক্সেস করা খুবই সহজ। SpEL Spring Framework-এর মধ্যে ব্যবহৃত একটি শক্তিশালী ভাষা যা জাভা অবজেক্টের প্রপার্টি, মেথড এবং কনস্ট্রাকটর অ্যাক্সেস করতে ব্যবহৃত হয়। SpEL Spring Bean কনফিগারেশন এবং Bean-এর প্রপার্টির মধ্যে ইন্টিগ্রেশন সহজতর করে।
Spring Bean-এর প্রপার্টি অ্যাক্সেস করার জন্য SpEL সাধারণত ${} ব্যবহার করে, যা Bean-এর প্রপার্টি বা মেথড কল করার জন্য ব্যবহার করা হয়।
Spring Bean এ Property Access করা
Spring Bean এর প্রপার্টি অ্যাক্সেস করতে SpEL সাধারণত @Value এনোটেশন বা Spring কনফিগারেশন ফাইলের মধ্যে ${} ব্যবহার করে।
১. SpEL ব্যবহার করে Spring Bean এর প্রপার্টি অ্যাক্সেস
Spring Bean এর প্রপার্টি অ্যাক্সেস করতে সাধারণত SpEL এক্সপ্রেশন ব্যবহার করা হয়। নিচে একটি উদাহরণ দেওয়া হলো যেখানে Spring Bean-এর প্রপার্টি SpEL দিয়ে অ্যাক্সেস করা হয়েছে।
উদাহরণ: Spring Bean এ Property Access
Step 1: Spring Bean ক্লাস তৈরি করা
public class User {
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Step 2: Spring XML কনফিগারেশন ফাইলে SpEL দিয়ে Bean প্রপার্টি অ্যাক্সেস
<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-3.0.xsd">
<!-- Spring Bean ডিফাইনেশন -->
<bean id="user" class="com.example.User">
<constructor-arg value="John Doe"/>
<constructor-arg value="30"/>
</bean>
<!-- SpEL ব্যবহার করে User Bean এর প্রপার্টি অ্যাক্সেস -->
<bean id="userInfo" class="java.lang.String">
<constructor-arg value="#{user.name}"/>
</bean>
</beans>
Step 3: Java কোডে Spring Bean থেকে প্রপার্টি অ্যাক্সেস করা
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpELExample {
public static void main(String[] args) {
// Spring Context লোড করা
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
// Bean থেকে প্রপার্টি অ্যাক্সেস করা
User user = (User) context.getBean("user");
System.out.println("User Name: " + user.getName()); // আউটপুট: John Doe
System.out.println("User Age: " + user.getAge()); // আউটপুট: 30
// SpEL এর মাধ্যমে String Bean থেকে Name প্রপার্টি অ্যাক্সেস
String userInfo = (String) context.getBean("userInfo");
System.out.println("User Info: " + userInfo); // আউটপুট: John Doe
}
}
SpEL ব্যবহার করে Bean Property Access-এর ব্যাখ্যা
- Bean Definition: Spring Bean এর জন্য কনস্ট্রাকটর-আরগুমেন্ট দিয়ে নাম ও বয়স প্রদান করা হয়েছে।
- SpEL Expression:
#{user.name}দিয়েuserBean-এরnameপ্রপার্টি অ্যাক্সেস করা হয়েছে এবং এটিuserInfoBean এ স্ট্রিং আউটপুট হিসাবে আসবে। - Context থেকে Bean Access: Spring কনটেক্সট থেকে Bean অ্যাক্সেস করে, প্রপার্টি মান গুলি আনা হয়েছে।
SpEL এবং Spring Bean এর মাধ্যমে বিভিন্ন এক্সপ্রেশন ব্যবহার করা
Spring Bean-এর প্রপার্টি অ্যাক্সেস করার সময় SpEL এক্সপ্রেশন ব্যবহার করা যায়। উদাহরণস্বরূপ:
১. Bean এর প্রপার্টি অ্যাক্সেস
<bean id="user" class="com.example.User">
<constructor-arg value="Alice"/>
<constructor-arg value="28"/>
</bean>
<bean id="userName" class="java.lang.String">
<constructor-arg value="#{user.name}"/>
</bean>
২. গাণিতিক এক্সপ্রেশন
<bean id="calculation" class="java.lang.Integer">
<constructor-arg value="#{10 + 20}"/>
</bean>
৩. মেথড কল
<bean id="userInfo" class="com.example.User">
<constructor-arg value="#{user.getName()}"/>
</bean>
৪. কন্ডিশনাল এক্সপ্রেশন
<bean id="status" class="java.lang.String">
<constructor-arg value="#{user.age > 25 ? 'Adult' : 'Minor'}"/>
</bean>
সারাংশ
SpEL ব্যবহার করে Spring Bean-এর প্রপার্টি অ্যাক্সেস করা যায়, যা Spring Framework-এর মধ্যে একটি শক্তিশালী এবং কার্যকরী টুল। এটি Spring Bean কনফিগারেশন ফাইলের মধ্যে ডাইনামিক এক্সপ্রেশন প্রয়োগের জন্য ব্যবহৃত হয় এবং কোডের পুনরাবৃত্তি কমিয়ে আনে। SpEL এর মাধ্যমে শুধু প্রপার্টি অ্যাক্সেসই নয়, গাণিতিক এক্সপ্রেশন, কন্ডিশনাল লজিক এবং মেথড কলও করা যায়, যা Spring অ্যাপ্লিকেশনকে আরও কার্যকরী করে তোলে।
Spring Expression Language (SpEL) দিয়ে Spring Bean-এর মেথড অ্যাক্সেস করা সম্ভব। SpEL এর মাধ্যমে Bean এর প্রপার্টি এক্সপ্রেসন ছাড়াও, Bean-এ থাকা মেথডগুলোও ডাইনামিকভাবে কল করা যায়। SpEL এর মাধ্যমে মেথড অ্যাক্সেস করার জন্য T(), #, এবং () সিনট্যাক্স ব্যবহার করা হয়।
Bean Methods Access-এর মূল কনসেপ্ট
- T(): এটি Java ক্লাসের রেফারেন্স বা মেথড কল করতে ব্যবহৃত হয়।
- #: Spring Bean অ্যাক্সেস করতে ব্যবহৃত হয়।
- (): মেথড কলের জন্য ব্যবহৃত হয়।
Spring Bean-এর মেথডগুলি SpEL দিয়ে অ্যাক্সেস করতে, প্রথমে Bean-এ উপস্থিত মেথডটির নাম এবং প্রয়োজনীয় প্যারামিটারগুলোর সাথে SpEL এক্সপ্রেশন তৈরি করতে হয়।
SpEL এর মাধ্যমে Bean Methods Access এর উদাহরণ
১. Spring Bean তৈরি:
ধরা যাক, একটি Employee Bean আছে, যেখানে একটি মেথড getFullName রয়েছে যা প্রথম নাম এবং শেষ নাম নিয়ে পুরো নাম রিটার্ন করবে।
@Component
public class Employee {
private String firstName;
private String lastName;
// Constructor, Getters, Setters
public String getFullName(String firstName, String lastName) {
return firstName + " " + lastName;
}
}
২. SpEL এর মাধ্যমে Bean Method Call:
Spring XML কনফিগারেশনে SpEL ব্যবহার করে Bean-এ থাকা মেথড কল করা যেতে পারে। উদাহরণস্বরূপ, আমরা Employee Bean এর getFullName মেথড কল করতে পারি।
<bean id="employee" class="com.example.Employee">
<property name="firstName" value="John"/>
<property name="lastName" value="Doe"/>
</bean>
<bean id="employeeService" class="com.example.EmployeeService">
<property name="fullName" value="#{employee.getFullName(employee.firstName, employee.lastName)}"/>
</bean>
এখানে, employee.getFullName(employee.firstName, employee.lastName) SpEL এক্সপ্রেশন ব্যবহার করে Employee Bean-এর getFullName মেথড কল করা হচ্ছে।
৩. SpEL এ Method Call With Arguments:
SpEL এ মেথড কল করার সময় প্যারামিটার পাস করতে হলে সেগুলোর মান নির্দিষ্ট করা হয়।
<bean id="employeeService" class="com.example.EmployeeService">
<property name="fullName" value="#{employee.getFullName('John', 'Doe')}"/>
</bean>
এখানে, getFullName মেথডে সরাসরি "John" এবং "Doe" প্যারামিটার পাস করা হচ্ছে।
৪. SpEL Annotation এ Method Call:
Spring অ্যানোটেশন-এ SpEL ব্যবহার করা হয় সাধারণত @Value অ্যানোটেশন ব্যবহার করে। উদাহরণস্বরূপ:
@Component
public class EmployeeService {
@Autowired
private Employee employee;
@Value("#{employee.getFullName('John', 'Doe')}")
private String fullName;
public String getFullName() {
return fullName;
}
}
এখানে EmployeeService Bean-এর মধ্যে SpEL এর মাধ্যমে Employee Bean-এর getFullName মেথড কল করা হয়েছে।
SpEL-এ Bean Methods Access করার অন্যান্য উদাহরণ
১. মেথড কল সহ Bean Property Access
<bean id="employee" class="com.example.Employee">
<property name="firstName" value="Jane"/>
<property name="lastName" value="Smith"/>
</bean>
<bean id="greetingService" class="com.example.GreetingService">
<property name="greetingMessage" value="#{employee.getFullName(employee.firstName, employee.lastName)}"/>
</bean>
এখানে, GreetingService Bean-এ employee.getFullName() মেথড কল করা হচ্ছে, যা employee.firstName এবং employee.lastName এর মান ব্যবহার করবে।
২. Bean Method With No Arguments
<bean id="employee" class="com.example.Employee">
<property name="firstName" value="John"/>
<property name="lastName" value="Doe"/>
</bean>
<bean id="employeeService" class="com.example.EmployeeService">
<property name="greetingMessage" value="#{employee.getFullName()}"/>
</bean>
এখানে getFullName() মেথড কোন প্যারামিটার ছাড়া কল হচ্ছে, যা Employee Bean-এর firstName এবং lastName প্রপার্টি ব্যবহার করবে।
SpEL-এ Bean Methods Access করার সুবিধা
- ডাইনামিক কনফিগারেশন: SpEL ব্যবহার করে Bean মেথডের মাধ্যমে ডাইনামিকভাবে তথ্য অ্যাক্সেস করা যায়।
- সহজ এক্সপ্রেশন: Bean মেথড কল এবং প্রপার্টি অ্যাক্সেস SpEL ব্যবহার করে সহজে করা সম্ভব হয়।
- কমপ্লেক্স লজিক: SpEL ব্যবহার করে Bean-এর মেথডে যুক্ত করা লজিক ও কন্ডিশনাল স্টেটমেন্ট সহজে প্রয়োগ করা যায়।
Spring Expression Language (SpEL) Bean মেথড অ্যাক্সেসের মাধ্যমে ডাইনামিকভাবে মেথড কল এবং প্রপার্টি এক্সপ্রেসন তৈরি করার ক্ষমতা প্রদান করে, যা Spring অ্যাপ্লিকেশনকে আরও নমনীয় এবং কনফিগারেশনসমৃদ্ধ করে তোলে।
স্প্রিং এক্সপ্রেশন ল্যাঙ্গুয়েজ (SpEL) স্প্রিং ফ্রেমওয়ার্কে ব্যবহৃত একটি শক্তিশালী এক্সপ্রেশন ল্যাঙ্গুয়েজ যা ডাইনামিক এক্সপ্রেশন ইভ্যালুয়েশন এবং কনফিগারেশন ফাইলগুলোর মধ্যে property এবং bean অ্যাক্সেসের জন্য ব্যবহৃত হয়। স্প্রিং অ্যাপ্লিকেশনের কনফিগারেশন এবং ডেটা অ্যাক্সেস সহজ করতে SpEL বিশেষভাবে কার্যকর।
১. Property Access (প্রোপার্টি অ্যাক্সেস)
স্প্রিং এক্সপ্রেশন ল্যাঙ্গুয়েজের মাধ্যমে সহজেই কোনো bean এর প্রোপার্টি অ্যাক্সেস করা যায়। এটি ${} সিঙ্কট্যাক্স ব্যবহার করে লেখা হয়।
Property Access এর উদাহরণ
public class Person {
private String name;
private int age;
// Getter and Setter methods
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
// Spring configuration using SpEL to access properties
@Component
public class Employee {
@Value("#{person.name}")
private String employeeName;
@Value("#{person.age + 5}")
private int employeeAge;
// Getter methods
public String getEmployeeName() {
return employeeName;
}
public int getEmployeeAge() {
return employeeAge;
}
}
ব্যাখ্যা:
#{person.name}SpEL এক্সপ্রেশনটিpersonBean এরnameপ্রোপার্টি অ্যাক্সেস করবে।#{person.age + 5}SpEL এক্সপ্রেশনটিpersonBean এরageপ্রোপার্টি এর উপর গাণিতিক অপারেশন করবে।
২. Bean Access (Bean অ্যাক্সেস)
স্প্রিং এক্সপ্রেশন ল্যাঙ্গুয়েজের মাধ্যমে স্প্রিং কনটেইনারে থাকা যেকোনো bean অ্যাক্সেস করা সম্ভব। এটি @{} সিঙ্কট্যাক্স ব্যবহার করে করা হয়।
Bean Access এর উদাহরণ
@Component
public class Address {
private String city;
public Address(String city) {
this.city = city;
}
public String getCity() {
return city;
}
}
@Component
public class Employee {
@Value("#{address.city}")
private String city;
// Getter method
public String getCity() {
return city;
}
}
ব্যাখ্যা:
#{address.city}SpEL এক্সপ্রেশনটিaddressBean থেকেcityপ্রোপার্টি অ্যাক্সেস করবে।- স্প্রিং কনটেইনারে
AddressBean এবংEmployeeBean এর মধ্যে ডিপেনডেন্সি ইনজেকশন সঠিকভাবে কাজ করবে।
৩. Bean Creation এবং Method Access (Bean সৃষ্টি এবং মেথড অ্যাক্সেস)
SpEL এর মাধ্যমে শুধু Property নয়, Method এবং Constructor থেকেও ডেটা অ্যাক্সেস করা যেতে পারে। স্প্রিং কনটেইনার থেকে কোনো Bean তৈরি করা এবং সেই Bean এর মেথড বা কনস্ট্রাকটর অ্যাক্সেস করা সম্ভব।
Bean Creation এবং Method Access উদাহরণ
@Component
public class Employee {
private String name;
public Employee(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
@Component
public class EmployeeService {
@Value("#{new com.example.Employee('John Doe')}")
private Employee employee;
public String getEmployeeName() {
return employee.getName();
}
}
ব্যাখ্যা:
new com.example.Employee('John Doe')SpEL এক্সপ্রেশনটিEmployeeBean তৈরি করে এবংnameপ্রোপার্টি সেট করে।- স্প্রিং কনটেইনার থেকে নতুন
EmployeeBean ইনস্ট্যান্স তৈরি হয় এবং এটিemployeeServiceBean এর মধ্যে ইনজেক্ট করা হয়।
৪. Static Method Access (স্ট্যাটিক মেথড অ্যাক্সেস)
SpEL এর মাধ্যমে স্ট্যাটিক মেথড অ্যাক্সেস করা যায়। এর জন্য T() অপারেটর ব্যবহার করা হয়।
Static Method Access উদাহরণ
public class Utility {
public static String getGreeting(String name) {
return "Hello, " + name;
}
}
@Component
public class EmployeeService {
@Value("#{T(com.example.Utility).getGreeting('John')}")
private String greeting;
public String getGreeting() {
return greeting;
}
}
ব্যাখ্যা:
T(com.example.Utility).getGreeting('John')SpEL এক্সপ্রেশনটিUtilityক্লাসের স্ট্যাটিক মেথডgetGreetingকল করে এবং'John'আর্গুমেন্ট পাস করে।
৫. Accessing List or Array (List বা Array অ্যাক্সেস)
SpEL এর মাধ্যমে List বা Array এর উপাদানও অ্যাক্সেস করা যেতে পারে। এটি [] ব্যবহার করে করা হয়।
List বা Array অ্যাক্সেস উদাহরণ
@Component
public class EmployeeService {
@Value("#{employeeList[0]}")
private String firstEmployee;
// Getter method
public String getFirstEmployee() {
return firstEmployee;
}
}
ব্যাখ্যা:
employeeList[0]SpEL এক্সপ্রেশনটিemployeeListএর প্রথম উপাদান অ্যাক্সেস করবে।
উপসংহার
স্প্রিং এক্সপ্রেশন ল্যাঙ্গুয়েজ (SpEL) একটি অত্যন্ত শক্তিশালী এবং নমনীয় টুল যা স্প্রিং ফ্রেমওয়ার্কে ডাইনামিক এক্সপ্রেশন কনফিগারেশন এবং ডেটা এক্সপ্রেশন প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়। Property এবং Bean Access এর সাহায্যে, স্প্রিং কনটেইনারে থাকা Bean এর প্রোপার্টি, মেথড এবং কনস্ট্রাকটর অ্যাক্সেস করা সহজ হয়, যা কোডের নমনীয়তা এবং পুনঃব্যবহারযোগ্যতা বাড়ায়।
Read more