Por lo tanto, estoy comenzando un nuevo proyecto en Java y estoy considerando usar Spring. ¿Por qué estoy considerando la primavera? ¡Porque mucha gente me dice que debería usar la primavera! En serio, siempre que trato de que la gente explique qué es exactamente Spring o qué hace, nunca pueden darme una respuesta directa. He revisado las intros en el sitio de SpringSource, y son muy complicadas o muy centradas en los tutoriales, y ninguna de ellas me da una buena idea de por qué debería usarla o de cómo facilitará mi vida. A veces la gente habla del término "inyección de dependencia", lo que me confunde aún más, porque creo que tengo una comprensión diferente de lo que significa ese término.
De todos modos, aquí hay un poco sobre mi historial y mi aplicación:
Estuve desarrollando en Java por un tiempo, haciendo desarrollo web de back-end. Sí, hago un montón de pruebas unitarias. Para facilitar esto, normalmente hago (al menos) dos versiones de un método: una que usa variables de instancia y otra que solo usa variables que se pasan al método. El que usa variables de instancia llama a la otra, suministrando las variables de instancia. Cuando llega el momento de la prueba de unidad, uso Mockito para simular los objetos y luego hacer llamadas al método que no usa variables de instancia. Esto es lo que siempre he entendido que es la "inyección de dependencia".
Mi aplicación es bastante simple, desde una perspectiva CS. Proyecto pequeño, 1-2 desarrolladores para empezar. Principalmente operaciones de tipo CRUD con un montón de búsquedas. Básicamente, un grupo de servicios web RESTful, más un front-end web y, finalmente, algunos clientes móviles. Estoy pensando en hacer el front-end en HTML / CSS / JS / JQuery directo, por lo que no hay planes reales para usar JSP. Utilizando Hibernate como ORM y Jersey para implementar los servicios web.
Ya empecé a programar, y estoy muy ansioso por obtener una demostración que puedo comparar y ver si alguien quiere invertir. Así que obviamente el tiempo es de la esencia. Entiendo que Spring tiene una gran curva de aprendizaje, además parece que necesita una gran cantidad de configuraciones XML, que normalmente trato de evitar como la plaga. Pero si puede hacer que mi vida sea más fácil y (especialmente) si hacerlo puede hacer que el desarrollo y las pruebas sean más rápidos, estoy dispuesto a morder la bala y aprender la primavera.
Así que por favor. Educame ¿Debo usar la primavera? ¿Por qué o por qué no?