JsonFactory ক্লাস থ্রেড-সেফ এবং রাইডার/রাইটার ইনস্ট্যান্স তৈরি করার জন্য দায়িত্বশীল। যে সেটিংগুলো অন/অফ করা যায় সেগুলো JsonFactory.Feature এনামারেশনে রয়েছে, এতে স্ট্যাটিক values() মেথড রয়েছে যা এই টাইপের এনাম কনস্ট্যান্ট রিটার্ন করে।
সিনট্যাক্স
public static enum JsonFactory.Feature extends Enum<JsonFactory.Feature>
উদাহরণ
import com.fasterxml.jackson.core.JsonFactory;
public class JsonFactorySettingsTest {
public static void main(String[] args) {
JsonFactory jsonFactory = new JsonFactory();
for(JsonFactory.Feature feature : JsonFactory.Feature.values()) {
boolean result = jsonFactory.isEnabled(feature);
System.out.println(feature.name() + ":" + result);
}
}
}
আউটপুট
INTERN_FIELD_NAMES:true
CANONICALIZE_FIELD_NAMES:true
FAIL_ON_SYMBOL_HASH_OVERFLOW:true
USE_THREAD_LOCAL_FOR_BUFFER_RECYCLING:true
ফিচার ব্যাখ্যা
| ফিচার | ডিফল্ট | ব্যাখ্যা |
|---|---|---|
| INTERN_FIELD_NAMES | true | ফিল্ড নাম ইন্টার্ন করুন (স্ট্রিং পুলে স্টোর) মেমোরি বাঁচাতে |
| CANONICALIZE_FIELD_NAMES | true | ফিল্ড নাম ক্যানোনিক্যালাইজ করুন (রিইউজের জন্য) |
| FAIL_ON_SYMBOL_HASH_OVERFLOW | true | সিম্বল টেবিল ওভারফ্লো হলে ফেইল করুন (DoS প্রোটেকশন) |
| USE_THREAD_LOCAL_FOR_BUFFER_RECYCLING | true | থ্রেড-লোকাল বাফার রিসাইক্লিং পারফরম্যান্সের জন্য |
কনফিগারেশন
JsonFactory factory = JsonFactory.builder()
.disable(JsonFactory.Feature.INTERN_FIELD_NAMES)
.enable(JsonFactory.Feature.FAIL_ON_SYMBOL_HASH_OVERFLOW)
.build();
ObjectMapper mapper = new ObjectMapper(factory);
নোট
JsonFactory ObjectMapper-এ পাস করে শেয়ার করা যায়। একই ফ্যাক্টরি একাধিক ObjectMapper-এ ব্যবহার করলে সিম্বল টেবিল শেয়ার হয় (মেমোরি সেভ)।