Можливо, Ви захочете включити Весну до свого списку розглянутих рамок впорскування залежностей. Ось кілька відповідей на ваші запитання:
З'єднання з рамкою
Pico - Pico прагне відмовити ін’єкцій сетерів, окрім іншого, вашим класам не потрібно знати про Pico. Потрібно знати лише проводку (справедливо для всіх рам DI).
Guice - Guice тепер підтримує стандартні анотації JSR 330 , тому конкретні примітки для Guice вам більше не потрібні. Весна також підтримує ці стандартні примітки. Аргумент, який використовують хлопці Guice, полягає в тому, що без запущеного процесора анотації Guice це не повинно впливати, якщо ви вирішите використовувати інший фреймворк.
Весна - Весна має на меті дозволити вам уникнути будь-якої згадки про весняний фреймворк у своєму коді. Оскільки у них є багато інших помічників / утиліт тощо. Спокуса досить сильна, щоб залежати від Spring коду.
Продуктивність
Піко - я не надто знайомий зі швидкісними характеристиками Піко
Guice - Guice був розроблений таким чином, щоб він був швидким, а порівняння, згадане в посиланні, має деякі цифри. Безумовно, якщо швидкість є першочерговою увагою або за допомогою Guice, або за допомогою електропроводки вручну
Весна - Весна може бути повільною. Була проведена робота з її швидшого використання, а використання бібліотеки JavaConfig повинно прискорити роботу.
Простота використання
Pico - простий у налаштуванні. Pico може прийняти для вас кілька автопровідних рішень. Не зрозуміло, як це стосується дуже великих проектів.
Guice - простий у налаштуванні, ви просто додаєте примітки та успадковуєте від AbstractModule, щоб зв’язувати речі разом. Масштабний масштаб для великих проектів, оскільки конфігурація зводиться до мінімуму.
Spring - відносно простий у налаштуванні, але більшість прикладів використовують Spring XML як метод конфігурації. Весняні XML-файли з часом можуть стати дуже великими та складними та потребують часу для завантаження. Подумайте про використання суміші пружинного та ручного колінчастого впорскування для подолання цього.
Розмір спільноти
Піко - малий
Guice - середній
Весна - велика
Досвід
Піко - Я не мав великого досвіду роботи з Pico, але це не є широко використовуваною основою, тому буде складніше знайти ресурси.
Guice - Guice - це популярна основа, і її спрямованість на швидкість вітається, коли у вас є великий проект, який ви перезапускаєте багато в розробці. У мене є стурбованість розподіленим характером конфігурації, тобто не просто зрозуміти, як складається вся наша програма. У цьому відношенні це трохи схоже на АОП.
Весна - весна, як правило, мій вибір за замовчуванням. Однак, XML може стати громіздким, а уповільнення, яке спричинить роздратування. Я часто в кінцевому підсумку використовую комбінацію розробленого вручну залежної інжекції та пружини. Коли вам справді потрібна конфігурація на основі XML, Spring XML є досить непоганим. Весна також доклала багато зусиль, щоб зробити інші рамки більш сприятливими для ін'єкцій залежностей, що може бути корисним, оскільки вони часто використовують найкращі практики при цьому (JMS, ORM, OXM, MVC тощо).
Список літератури