Отже, я починаю абсолютно новий проект на Java і розглядаю можливість використання Spring. Чому я розглядаю Весну? Тому що багато людей говорять мені, що я повинен використовувати Весна! Серйозно, щоразу, коли я намагався змусити людей пояснити, що саме таке Весна або що вона робить, вони ніколи не можуть дати мені прямої відповіді. Я перевірив вступи на сайті SpringSource, і вони або дуже складні, або по-справжньому орієнтовані на навчальний посібник, і жоден з них не дає мені гарного уявлення про те, навіщо мені користуватися ним, або як це полегшить моє життя. Іноді люди кидають навколо поняття "ін'єкція залежності", що просто бентежить мене ще більше, тому що я думаю, що я по-різному розумію, що означає цей термін.
У будь-якому випадку, ось трохи про мій фон та мою програму:
Деякий час розвивався в Java, роблячи розробки веб-сайтів. Так, я роблю тонну одиницю тестування. Щоб полегшити це, я зазвичай складаю (принаймні) дві версії методу: той, який використовує змінні екземпляри, і той, що використовує лише змінні, передані методу. Той, який використовує змінні екземпляри, викликає інший, постачаючи змінні екземпляра. Коли настає час тестування одиниць, я використовую Mockito для макетування об'єктів, а потім здійснюю виклики методу, який не використовує змінні екземпляри. Це те, що я завжди розумів як "ін'єкція залежності".
Мій додаток досить простий, з точки зору CS. Невеликий проект, 1-2 розробники для початку. В основному операції типу CRUD з купою пошукових запитів. В основному купа RESTful веб-сервісів, плюс веб-інтерфейс, а згодом і деякі мобільні клієнти. Я думаю про те, щоб робити фронт-енд в прямому HTML / CSS / JS / JQuery, тому ніяких реальних планів використовувати JSP. Використання Hibernate як ORM та Jersey для впровадження веб-сервісів.
Я вже почав кодувати, і дуже хочу отримати демонстраційну версію, яку я можу робити по магазинах і бачити, чи хоче хтось інвестувати. Тож очевидно, що час є сутнісним. Я розумію, що у Spring є досить крива навчання, плюс, схоже, це потребує цілого ряду конфігурації XML, якої я, як правило, намагаюся уникати, як чуми. Але якщо це може полегшити моє життя і (особливо), якщо зробити це, може зробити розвиток і тестування швидше, я готовий кусати кулю і дізнатися Весну.
Тому будь-ласка. Навчіть мене. Чи варто використовувати Spring? Чому або чому ні?