Является ли Spring's @Autowired огромной проблемой производительности? - PullRequest
6 голосов
/ 24 ноября 2011

У меня есть проект, который имеет ... Я не знаю ... 200-300 daos / services / controllers, и я использую @Autowired, чтобы связать все вместе, а не указать все в applicationContext.xml.

У меня вопрос: насколько это влияет на производительность при запуске? Стоит ли удалять все аннотации @Autowired и подключать это приложение вручную через applicationContext.xml?

С архитектурной точки зрения мне нравится @Autowired. Я не хочу добавлять еще один уровень сложности с помощью XML-файла - он не добавляет никакой ценности, насколько мне известно. Но если такие вещи добавляют 10 секунд ко времени загрузки моего контейнера, я могу рассмотреть это. Если стоимость составляет 100 миллисекунд, я оставлю все как есть.

Спасибо

Ответы [ 2 ]

5 голосов
/ 24 ноября 2011

Практически то же самое.Сканирование компонентов немного дороже (когда вы сканируете для @Service, @Component), но, как вы сказали, это время запуска - это происходит только один раз.И на умеренной машине он запускается довольно быстро даже с аннотациями.

В общем, я бы не отказался от подхода только потому, что он добавляет немного времени запуска.И я могу заверить вас, что в этом нет ничего существенного (работа над большим проектом, чем ваш сейчас)

4 голосов
/ 24 ноября 2011

Есть интересный комментарий от @ Masterhard в Spring @Autowired :

Мы переходим от @Autowire к конфигурации XML в нашембольшой проект.Проблема в очень низкой производительности при загрузке .Сканер с автопроводкой загружает все классы из пути поиска по автопроводке, поэтому многие классы загружаются с нетерпением во время инициализации Spring.

См., Например, SPR-6870 .

Тем не мение!Автопроводка с использованием аннотаций настолько удобна, что я бы дважды подумал, прежде чем вернуться к XML.Если время запуска действительно не является проблемой в вашем проекте, и вы можете доказать, что именно сканирование CLASSPATH вызывает его, оставайтесь с аннотациями.Также помните, что Java EE также движется к аннотациям.

PS: анализ тысяч строк XML также вносит некоторые накладные расходы.

...