2017-02-08 5 views
2

Каков правильный способ создания RestTemplate экземпляра в Spring?Где можно создать RestTemplate весной?

Предположим, у меня есть служба, где я выполняю многопоточные запросы через шаблон отдыха.

я нашел различные варианты в различных учебных пособий:

1) создать его, когда это необходимо:

RestTemplate restTemplate = new RestTemplate(); 

2) объявить его как фасоль:

@Bean 
public RestTemplate restTemplate() { 
    return new RestTemplate(); 
} 

(или что то же самое - в файле конфигурации XML).

, а затем autowire it ... Будет ли это всегда безопасным для резьбы в этом случае?

Есть ли разница в производительности? Что более «весенний» стиль?

+0

Хорошо, это всегда будет потокобезопасным? – Andremoniy

+0

Если вы создадите его по мере необходимости, вам нужно его настроить каждый раз. Он должен быть одноэлементным, и да, это поточно-безопасный. – OrangeDog

+1

Есть также такие вопросы, как http://stackoverflow.com/questions/21242812/how-to-use-resttemplate-efficiently-in-multithreaded-environment –

ответ

1

Где создать RestTemplate весной?

Он может быть определен в любом классе конфигурации, который отвечает за настройки веб-клиента, если таковой имеется. Хорошо объявить его как @Bean с областью Singleton (один экземпляр на контейнер), предположив, что это довольно тяжелый объект.

Если бы вы были в приложении Spring Boot, я бы предложил использовать RestTemplateBuilder, который мог бы помочь построить RestTemplate более удобно.

Что такое "весенний" стиль?

«Весна в стиле» не для разрешения зависимостей вручную и написать строки, как

RestTemplate restTemplate = new RestTemplate(); 

Оставьте этот вопрос в рамках.

Смежные вопросы