persistencia datos java frameworks

persistencia de datos en java pdf



Framework web ligero de Java-requisitos específicos (3)

La primera vez que encontré, por ejemplo, el marco Sinatra de Ruby o el marco Zend de PHP, me pregunté si hay algo adecuado en Java, todo parece tan exagerado aquí. Aunque hay miles de marcos alrededor, no he encontrado ninguno hasta ahora que me haya parecido perfecto para el tipo de arquitectura que me gustaría implementar.

Quería diseñar una aplicación web que fuera pesada en Javascript con la mayor parte de la lógica de la aplicación implementada en el cliente, el back-end de Java serviría más o menos como un almacén de datos o realizar cálculos complejos.

Miré las preguntas relacionadas aquí pero no pude encontrar la respuesta perfecta, cada una de las soluciones sugeridas tenía una peculiaridad que no coincidía con los requisitos.

Así que esto es lo que estoy buscando, un marco de código abierto con las siguientes características:

  • Convención sobre configuración
  • Sin configuración XML excepto para web.xml
  • Java puro (no Scala, no Groovy, ...)
  • URL naturales de estilo REST como / news / 2011 / july (no .do, no .jsp, ...)
  • REST-consciente
  • no debería obligarme a desplegar en un servidor de aplicaciones (por ejemplo, EJB debería ser opcional)
  • El soporte de sesión sería bueno pero no obligatorio
  • La generación de código como en Rails sería impresionante pero no obligatoria
  • Mínimo de dependencias, pequeño en tamaño total.
  • MVC estaría bien, pero
    • Me gustaría poder elegir la parte M, elegir las bibliotecas de persistencia por mi cuenta (sin agrupar).
    • Ningún código generado automáticamente para la vista, ni HTML, Javascript ni CSS
    • Un lenguaje de plantilla integrado sería bueno, pero debería ser minimalista (flujo de control simple, acceso a las variables de la plantilla)
    • Soporte de diseño (es decir, puede especificar una plantilla común para vistas similares)
    • Libre elección del framework Javascript para las vistas.

Básicamente, esto significaría un marco MVC que hace el enrutamiento por mí y ofrece soporte de plantillas para las vistas, pero el resto es completamente modular, sin magia. ¿Hay algún marco minimalista que proporcione esto (o al menos es lo suficientemente modular como para configurarlo de esa manera)?


¿Qué hay de Play Framework ?

Convención sobre configuración

El juego tiene pocos archivos de configuración. La mayor parte de su estructura es por convención. Por ejemplo, la estructura básica es la siguiente:

| +---/app - All executable artifacts go here (java files, conf files and view templates). | | | +---/model - Your model Java classes. | | | +---/view - Your view templates. | | | +---/controller - Your controller classes | |---/conf - Contains all configuration files for the application. Initially contains application configuration and routing table. | |---/lib - Libraries your appliaction needs. Added automatically to classpath. | |---/log | |---/public - Public stuff are your static assets that your server gives directly | |---/test | |---/tmp - All your temporarily compiled .class files are here

Sin configuración XML excepto para web.xml

Play no tiene configuración XML, incluido ningún web.xml. Tiene un archivo de enrutamiento en su lugar. Vea el siguiente ejemplo de lo que utiliza para el enrutamiento.

Java puro (no Scala, no Groovy, ...)

Es Java puro, pero puedes usar Scala o Groovy a través de un complemento.

  • URL naturales de estilo REST como / news / 2011 / july (no .do, no .jsp, ...)
  • REST-consciente

Desde el sitio:
Play is a real "Share nothing" system. Ready for REST, it is easily scaled by running multiple instances of the same application on several servers.

De hecho, enrutar de manera similar a un descanso es bastante fácil:

# Play ''routes'' configuration file… # Method URL path Controller GET / Application.index GET /about Application.about POST /item Item.addItem GET /item/{id} Item.getItem GET /item/{id}.pdf Item.getItemPdf

No es difícil adivinar cuál va a donde una vez que te acostumbras a jugar un poco.

  • no debería obligarme a desplegar en un servidor de aplicaciones (por ejemplo, EJB debería ser opcional)

No lo hace De hecho implementas guardando tus archivos. Los EJB son completamente opcionales y también lo son .war , .ear y otras formas de implementación.

La generación de código como en Rails sería impresionante pero no obligatoria

No creo que haga mucha generación de código pero no estoy 100% en eso. Crea automáticamente todas las carpetas requeridas y crea una instancia de una página de ejemplo básica. No sé si Rails genera algo más ...

MVC estaría bien, pero
- Me gustaría poder elegir la parte M, elegir las bibliotecas de persistencia por mi cuenta (sin agrupar).
- No hay código generado automáticamente para la vista, ni HTML, Javascript, ni CSS
- Un lenguaje de plantilla integrado sería bueno, pero debería ser minimalista (flujo de control simple,

Ver MVC en Play

  • Piensa que este es un contrapunto menor. Los modelos de juego deben usar JPA o extender cierta clase de modelo que viene con el juego. Vea Play Framework-Model para más información.
  • No genera HTML, aunque puede usar el idioma de su plantilla dentro de su .html , .css , .js y otros archivos para crear páginas dinámicas.
  • He incorporado un lenguaje de plantillas basado en el lenguaje de plantillas Groovy, por ejemplo

    You have ${emails.unread ?: ''no''} ${emails.unread?.pluralize(''email'')} !

Otros pros:

  • Es bastante divertido programar en.
  • ¿Mencioné el hotswap que te permite volver a implementar tu aplicación al guardar archivos de origen?
  • Grandes registros de errores.

Contras:

  • Es 51MB no está seguro si esto califica como ligero: /

He usado el marco Stripes en varios proyectos en el pasado, y parece que cumple con todos / la mayoría de sus criterios, especialmente la convención sobre la configuración. No hay configuración XML; hay un archivo stripes.properties que tiene una configuración de comportamiento general (es una adición única a su classpath). Se necesita una edición única de web.xml para configurar el "Distribuidor de rayas", que es un filtro que enruta las solicitudes a sus beans de acción apropiados. Los ActionBeans se descubren automáticamente, por lo que ni siquiera tiene que actualizar su web.xml cuando agregue más Action Beans. Todas sus URL se configuran utilizando anotaciones en los beans de acción, apoyadas por el resto, enlaces dinámicos de ActionBean, validación del lado del servidor y conversión a través de anotaciones integradas para tipos simples, con la capacidad de crear sus propios controladores y convertidores de validación para tipos complejos. Funciona con JSP y sus bibliotecas JS / CSS personalizadas. Los foros de documentación y soporte son geniales. Es rápido de aprender si sigues su tutorial.


Spring Roo : me resultó fácil empezar. Puede generar código UI pero depende de usted usarlo.