Итак, я начинаю новый проект на Java и собираюсь использовать Spring. Почему я рассматриваю весну? Потому что многие люди говорят мне, что я должен использовать Spring! Серьезно, каждый раз, когда я пытался заставить людей объяснить, что такое Spring или что он делает, они никогда не могли дать мне прямой ответ. Я проверил вступления на сайте SpringSource, и они либо очень сложны, либо ориентированы на учебники, и ни одно из них не дает мне хорошего представления о том, почему я должен его использовать или как это облегчит мою жизнь. Иногда люди используют термин «инъекция зависимости», что еще больше смущает меня, потому что я думаю, что у меня другое понимание того, что означает этот термин.
В любом случае, вот немного о моем прошлом и моем приложении:
Некоторое время занимался разработкой на Java, занимался веб-разработкой. Да, я делаю тонну модульного тестирования. Чтобы облегчить это, я обычно делаю (как минимум) две версии метода: одну, которая использует переменные экземпляра, и другую, которая использует только те переменные, которые передаются в метод. Тот, который использует переменные экземпляра, вызывает другой, предоставляя переменные экземпляра. Когда приходит время модульного тестирования, я использую Mockito для макетирования объектов, а затем вызываю метод, который не использует переменные экземпляра. Это то, что я всегда понимал под «внедрением зависимости».
Мое приложение довольно простое, с точки зрения CS. Небольшой проект, 1-2 разработчиков для начала. В основном это операции типа CRUD с множеством поисковых запросов. В основном, это набор веб-сервисов RESTful, а также веб-интерфейс и, в конечном итоге, некоторые мобильные клиенты. Я подумываю о создании внешнего интерфейса в прямом HTML / CSS / JS / JQuery, поэтому никаких реальных планов по использованию JSP нет. Использование Hibernate в качестве ORM и Джерси для реализации веб-сервисов.
Я уже начал программировать, и я действительно хочу получить демо, где я могу ходить по магазинам и посмотреть, хочет ли кто-нибудь инвестировать. Очевидно, что время имеет существенное значение. Я понимаю, что у Spring довольно крутая кривая обучения, и, похоже, он требует целой связки конфигурации XML, которую я обычно стараюсь избегать, как чумы. Но если это может сделать мою жизнь проще и (особенно), если это может сделать разработку и тестирование быстрее, я готов прикусить пулю и изучить Spring.
Так пожалуйста. Просвети меня. Должен ли я использовать Spring? Почему или почему нет?