הגדר תצורה של RestTemplate עם RestTemplateBuilder

1. הקדמה

במדריך מהיר זה, נבחן כיצד להגדיר קפיץ RestTemplate אפונה.

נתחיל בדיון בשלושת סוגי התצורה העיקריים:

  • באמצעות ברירת המחדל RestTemplateBuilder
  • באמצעות א RestTemplateCustomizer
  • יוצרים משלנו RestTemplateBuilder

כדי להיות מסוגל לבדוק זאת בקלות, אנא עקוב אחר המדריך כיצד להגדיר יישום Spring Spring פשוט.

2. תצורה באמצעות ברירת המחדל RestTemplateBuilder

כדי להגדיר א RestTemplate בדרך זו, אנחנו צריכים הזריק את ברירת המחדל RestTemplateBuilder שעועית המסופקת על ידי Spring Boot לשיעורים שלנו:

פרטי RestTemplate restTemplate; @Autowired הציבור HelloController (RestTemplateBuilder בונה) {this.restTemplate = builder.build (); }

ה RestTemplate שעועית שנוצרה בשיטה זו יש לה היקף מוגבל למעמד בו אנו בונים אותו.

3. תצורה באמצעות RestTemplateCustomizer

בעזרת גישה זו אנו יכולים צור התאמה אישית של תוסף לכל היישומים.

זו גישה קצת יותר מסובכת. בשביל זה אנחנו צריכים ליצור מחלקה שמיישמת RestTemplateCustomizer,ולהגדיר אותה כשעועית:

מחלקה ציבורית CustomRestTemplateCustomizer מיישמת RestTemplateCustomizer {@Override public void customize (RestTemplate restTemplate) {restTemplate.getInterceptors (). add (new CustomClientHttpRequestInterceptor ()); }}

ה CustomClientHttpRequestInterceptor מיירט מבצע רישום בסיסי של הבקשה:

מחלקה ציבורית CustomClientHttpRequestInterceptor מיישם את ClientHttpRequestInterceptor {לוגר סטטי פרטי LOGGER = LoggerFactory .getLogger (CustomClientHttpRequestInterceptor.class); @Override יישום ClientHttpResponse ציבורי (בקשת HttpRequest, גוף בתים [], ביצוע ClientHttpRequestExecution) זורק IOException {logRequestDetails (בקשה); ביצוע חזרה. ביצוע (בקשה, גוף); } logRequestDetails בטל פרטי (HttpRequest בקשה) {LOGGER.info ("כותרות: {}", request.getHeaders ()); LOGGER.info ("שיטת הבקשה: {}", request.getMethod ()); LOGGER.info ("בקש URI: {}", request.getURI ()); }}

עכשיו, אנו מגדירים CustomRestTemplateCustomizer כשעועית בשיעור תצורה או בכיתת היישום Spring Boot:

@Bean CustomRestTemplateCustomizer ציבורי customRestTemplateCustomizer () {להחזיר CustomRestTemplateCustomizer חדש (); }

עם תצורה זו, כֹּל RestTemplate שבה נשתמש ביישום שלנו יוגדר המיירט המותאם אישית.

4. תצורה על ידי יצירת משלנו RestTemplateBuilder

זוהי הגישה הקיצונית ביותר להתאמה אישית של RestTemplate. זה משבית את התצורה האוטומטית המוגדרת כברירת מחדל של RestTemplateBuilder, אז עלינו להגדיר זאת בעצמנו:

@Bean @ DependsOn (value = {"customRestTemplateCustomizer"}) ציבורי RestTemplateBuilder restTemplateBuilder () {להחזיר RestTemplateBuilder חדש (customRestTemplateCustomizer ()); }

אחרי זה, אנחנו יכולים הזריק את הבנאי המותאם אישית לשיעורים שלנו כמו שהיינו עושים עם ברירת מחדל RestTemplateBuilder וליצור א RestTemplate כרגיל:

פרטי RestTemplate restTemplate; @Autowired הציבור HelloController (RestTemplateBuilder בונה) {this.restTemplate = builder.build (); }

5. מסקנה

ראינו כיצד להגדיר א RestTemplate עם ברירת המחדל RestTemplateBuilder, בונים משלנו RestTemplateBuilder, או באמצעות a RestTemplateCustomizer אפונה.

כמו תמיד, בסיס הקוד המלא לדוגמא זו נמצא במאגר GitHub שלנו.


$config[zx-auto] not found$config[zx-overlay] not found