Apache Commons BeanUtils লাইব্রেরিতে BeanUtilsBean একটি বিশেষ ক্লাস যা BeanUtils এর বিভিন্ন কার্যকলাপ পরিচালনা করে, যেমন ডেটা কপি করা, টাইপ কনভার্সন এবং প্রপার্টি ম্যানিপুলেশন। BeanUtilsBean ক্লাসটি ডিফল্ট কনফিগারেশন সেটিংস সরবরাহ করে, তবে কিছু বিশেষ পরিস্থিতিতে আপনি এই কনফিগারেশন পরিবর্তন করতে চাইলে তা সম্ভব।
কনফিগারেশন পরিবর্তন করার উদ্দেশ্য:
- অতিরিক্ত প্রপার্টি সেটিং: ডিফল্ট কনফিগারেশন যদি আপনার প্রপার্টি ম্যানিপুলেশনের জন্য উপযুক্ত না হয়, তবে আপনি
BeanUtilsBeanব্যবহার করে কাস্টম সেটিংস অ্যাপ্লাই করতে পারেন। - টাইপ কনভার্সন: টাইপ কনভার্সন কাস্টমাইজ করতে, যেমন String থেকে Integer কনভার্ট করা, বা অন্য কোন নির্দিষ্ট কনভার্সন পদ্ধতি ব্যবহার করা।
- Error Handling: ডিফল্ট error handling পরিবর্তন করতে এবং কাস্টম conversion errors বা property access errors হ্যান্ডল করতে
BeanUtilsBeanএর সাহায্য নিতে পারেন।
BeanUtilsBean ক্লাসের মাধ্যমে কনফিগারেশন পরিবর্তন করা
BeanUtilsBean ক্লাসের কিছু মূল কনফিগারেশন সেটিংস পরিবর্তন করার জন্য, আপনি BeanUtilsBean এর setInstance() মেথড ব্যবহার করে একটি কাস্টম ইনস্ট্যান্স তৈরি করতে পারেন।
উদাহরণ: BeanUtilsBean এর কনফিগারেশন পরিবর্তন করা
import org.apache.commons.beanutils.BeanUtilsBean;
import org.apache.commons.beanutils.converters.DateConverter;
public class BeanUtilsCustomConfigExample {
public static void main(String[] args) {
try {
// Create a custom DateConverter to convert strings to Date
DateConverter dateConverter = new DateConverter(null);
dateConverter.setPatterns(new String[]{"yyyy-MM-dd", "MM/dd/yyyy"});
// Create a custom BeanUtilsBean with the custom converter
BeanUtilsBean beanUtilsBean = new BeanUtilsBean();
beanUtilsBean.getConvertUtils().register(dateConverter, java.util.Date.class);
// Use the custom BeanUtilsBean for property copying
Person source = new Person("John", "2024-11-15");
Person target = new Person();
beanUtilsBean.copyProperties(target, source);
// Output the result
System.out.println("Name: " + target.getName()); // Output: John
System.out.println("Birthdate: " + target.getBirthdate()); // Output: 2024-11-15
} catch (Exception e) {
e.printStackTrace();
}
}
}
class Person {
private String name;
private java.util.Date birthdate;
public Person() {}
public Person(String name, String birthdate) throws Exception {
this.name = name;
// Convert the string to a Date
this.birthdate = new java.text.SimpleDateFormat("yyyy-MM-dd").parse(birthdate);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public java.util.Date getBirthdate() {
return birthdate;
}
public void setBirthdate(java.util.Date birthdate) {
this.birthdate = birthdate;
}
}ব্যাখ্যা:
- Custom Converter: এখানে আমরা একটি DateConverter তৈরি করেছি যা String থেকে Date কনভার্সন করতে ব্যবহৃত হয়। দুটি তারিখের ফরম্যাট যোগ করা হয়েছে (যেমন
yyyy-MM-dd,MM/dd/yyyy)। - BeanUtilsBean Instance: এরপর একটি BeanUtilsBean এর কাস্টম ইনস্ট্যান্স তৈরি করা হয়েছে, যেখানে আমাদের কাস্টম DateConverter রেজিস্টার করা হয়েছে। এরপর
copyProperties()ব্যবহার করে ডেটা কপি করা হয়েছে। - কাস্টম কনভার্সন: যখন BeanUtilsBean কাস্টম কনভার্সন ব্যবহার করে ডেটা কপি করা হয়েছে, তখন String থেকে Date কনভার্সন সঠিকভাবে সম্পন্ন হয়েছে।
BeanUtilsBean এর কিছু গুরুত্বপূর্ণ কনফিগারেশন অপশন:
- Type Conversion:
- আপনি Type Converters কাস্টমাইজ করতে পারেন, যেমন DateConverter, BooleanConverter, IntegerConverter, ইত্যাদি। এগুলি setPatterns() অথবা setDefaultValue() মেথডের মাধ্যমে কনফিগার করা যায়।
- Error Handling:
- আপনি
BeanUtilsBeanএর setStrictMethodInvocation(true) সেট করতে পারেন, যা strict mode চালু করে এবং প্যারামিটার মিসিং হলে IllegalAccessException ছুঁড়ে দেয়। - আপনি setPropertyUtilsBean() ব্যবহার করে PropertyUtilsBean এর কাস্টম কনফিগারেশন সেট করতে পারেন।
- আপনি
- MethodInvocation Customization:
- ডিফল্টভাবে, BeanUtils প্রপার্টি অ্যাক্সেসের জন্য getter এবং setter মেথড ব্যবহার করে। তবে আপনি setMethodAccessor() এর মাধ্যমে কাস্টম মেথড অ্যাক্সেসর সেট করতে পারেন।
- Custom Property Names:
- আপনি convertUtils এর মাধ্যমে কাস্টম property naming strategies ব্যবহার করতে পারেন। এর মাধ্যমে, প্রপার্টি নামের মধ্যে পরিবর্তন আনা সম্ভব হয়।
সারাংশ:
BeanUtilsBeanহল Apache Commons BeanUtils লাইব্রেরির মূল অংশ যা প্রপার্টি কপি, টাইপ কনভার্সন, এবং অন্যান্য কার্যকলাপ পরিচালনা করে।- আপনি
BeanUtilsBeanএর কনফিগারেশন পরিবর্তন করে type converters, error handling, এবং method invocation কাস্টমাইজ করতে পারেন। - কাস্টম কনফিগারেশনগুলি আপনাকে আরও উন্নত কন্ট্রোল এবং ফ্লেক্সিবিলিটি প্রদান করে, বিশেষ করে যখন আপনার প্রোজেক্টে জটিল ডেটা ম্যানিপুলেশন প্রয়োজন।
Content added || updated By
Read more