Desarrollo productos del lado del servidor utilizando sitios web como interfaces. La lógica subyacente suele ser compleja, sin embargo, las interfaces de usuario son MUY simples (la mayoría de ellas son operaciones CRUD simples en tablas mysql. La consulta más complicada generalmente requiere algunas uniones, y todo se realiza normalmente sin estado, excepto para el usuario). cartas credenciales).
Hasta ahora, he diseñado mis proyectos de esta manera:
Como dije antes, normalmente nuestros sitios web son MUY simples, así que construí la API base y el sitio web base sobre Code Igniter para simplificar; como dije, esa parte de la aplicación es realmente simple y está cubierta por mis propias clases generales.
El problema
Tengo dos problemas principales:
La pregunta
El próximo proyecto al que me enfrentaré sería mucho más fácil de implementar con un servidor consciente del estado, como Tomcat. También me gustaría poder declarar clases en el ámbito de una aplicación (o algo equivalente que haga que se instancian solo una vez cuando se inicia Tomcat, si el marco desalienta esa práctica).
¿Qué marcos Java son los más adecuados para mi problema y situación general? Mi plan es hacer un proyecto semilla para que mis proyectos sean homogéneos, sin embargo, puede ser mejor usar herramientas de generación, ¿cuál es tu experiencia al respecto? .Tengo tiempo para jugar con el marco antes de comenzar el proyecto en sí.
En este momento, mis colegas que codifican Tomcat están usando una combinación de lo siguiente:
No tengo experiencia con struts, pero parece fácil, por lo que mi primer pensamiento fue seguir su esquema para hacer que los proyectos sean más homogéneos, lo que tiene la ventaja de tener personas a las que puedo hacer preguntas sentadas a mi lado, sin embargo, parece como que produce demasiada placa repetitiva, y que modificar ciertas cosas se vuelve tedioso después del proceso de generación automática, pero puede ser solo la falta de experiencia.
Como dije, nuestros puntos finales son muy simples, por lo que preferiría un marco de trabajo ligero. Sé que el mejor marco es con el que te sientes más cómodo, y que si mis colegas conocen un marco específico, es mucho mejor seguir el juego, pero como dije, no tengo experiencia con los marcos de Java, así que Tengo que aprender uno de todos modos, así que quería opiniones basadas en la experiencia.
Pregunta LATERAL: Como dije antes, la mayoría de mis proyectos tienen un punto final REST Api. PHP parece perfecto para esto, ya que no se aplica el tipo; sin embargo, con estructuras de datos de forma arbitraria, Java no es tan fácil como PHP. Recuerdo de mis tiempos de Java que usé la biblioteca Gson de Google para manejar la codificación/descodificación JSON, y parece que todavía está de moda en este momento. Solía satisfacer mis necesidades en el pasado. Tiene alguna idea sobre esto?
pregunta secundaria 2: imagine el siguiente escenario: tengo un analizador Tika para extraer texto sin formato de los documentos. Mi primer pensamiento es crear una instancia del analizador Tika en el alcance de la aplicación y luego llamar a sus métodos cuando sea necesario. En C, necesitaría manejar la concurrencia por mí mismo, ¿Tomcat lo está haciendo correctamente? ¿Cuáles son las mejores prácticas con Tomcat? Estaré en una intensa lectura de documentación de tomcat esta noche, por lo que probablemente podré responderme sobre esto lo suficientemente pronto.
Tiene muchos requisitos y nunca he oído hablar de algunos marcos que mencionó. (Por ejemplo, nunca he escrito una sola línea de PHP). Dicho esto, le recomendaría el (meta) marco Spring.
Pivotal (la empresa detrás de Spring) describe Spring de la siguiente manera:
Un elemento clave de Spring es el soporte de infraestructura a nivel de aplicación: Spring se enfoca en la "plomería" de las aplicaciones empresariales para que los equipos puedan enfocarse en la lógica de negocios a nivel de aplicación, sin ataduras innecesarias a entornos de implementación específicos.
Además, está Spring Boot , que le brinda la posibilidad de poner en marcha su proyecto. Puede encontrar un tutorial para crear un servidor REST simple aquí .
Si está buscando un marco simple y fácil de aprender, Spring no es para usted. Pero en mi opinión es más que un framework, porque proporciona todo un ecosistema de frameworks, que se pueden combinar según tus necesidades.
Hay, por ejemplo, Spring Data y Spring Data REST que automáticamente (más o menos) crean la API REST y las operaciones CRUD necesarias.
Desafortunadamente, no tengo experiencia con el desarrollo de front-end y Spring, pero hay Spring MVC que lo ayuda a construir front-end.
Spring también puede empaquetarse como WAR y desplegarse en un servidor Tomcat.
DGoiko