Cómo comenzar a aprender J2EE, especialmente JPA [cerrado]

11

Estoy tratando de comenzar a aprender la J2EEparte de Java. Pero no sé por dónde empezar. Estoy familiarizado con Core Javay principalmente, quiero aprender JPAy conceptos básicos de Hibernatey Spring Framework. La razón principal de esto es que estoy trabajando en un proyecto que está utilizando todas estas cosas. Y la mayoría del código está siendo desarrollado por algunos hombres mayores y tengo que hacer algunas modificaciones al respecto. Entonces, básicamente, necesito entender su código.

¿Puede alguien darme una especie de hoja de ruta, como qué cosas necesito saber de antemano y en qué secuencia debo ir? ¿Algún material de referencia, como enlaces, libros?

Bhushan
fuente
1
¿Tienen estos adultos mayores tiempo para presentarles lo que han hecho hasta ahora?
@ Thorbjørn Ravn Andersen: Si hago alguna duda, me lo explica. Pero la cosa es que el código es moderadamente grande (~ 10000 líneas). Entonces, si tengo que hacer algo, tengo que revisar muchos archivos fuente y muchas líneas de código, lo que supongo que no puedo pedirles que me expliquen por completo. Básicamente no estoy familiarizado con JPA y Spring Framework, y en general J2EE. Así que estaba buscando algunas cosas que me ayudaran a entender cómo funciona todo y lo básico, para que al menos no haga algunas estúpidas dudas.
Bhushan

Respuestas:

7

Cada vez que quiero aprender un nuevo marco / lenguaje, generalmente preparo un pequeño proyecto que lo usa. Para un marco web, tengo una aplicación web común que escribo con él. Es simple y no hace mucho, pero tiene suficientes características que necesito para aprovechar las partes más comunes del marco (base de datos, trabajos en segundo plano, mvc o lo que sea similar). De hecho, no hace mucho tiempo asumí la tarea de aprender Spring / MVC + Hibernate. No lo sé todo, sin duda, pero me dio suficientes antecedentes que, cuando no sé algo, sé qué preguntas hacer y cómo pedirles que obtengan más información.

Para los frameworks web, generalmente comienzo con el sencillo ejemplo de "hola mundo" proporcionado para la mayoría de los frameworks. Si tiene un ejemplo de "libro de visitas" (es decir, para mostrar el uso de la base de datos), le doy seguimiento. A partir de ahí, empiezo a agregar la funcionalidad que quiero en mi aplicación de aprendizaje, comenzando por la más simple. La idea es que puedo descubrir cómo hacer las preguntas correctas para las cosas simples. Después de hacer algunas cosas simples, puedo ver las cosas más complejas y, con la información que ya he aprendido, espero poder formular las preguntas correctas para hacerlas.

Recientemente comencé a poner el código para tales proyectos de aprendizaje en sourceforge , si estás interesado.

Editar: el comentario de Donal hizo que quisiéramos agregar ... No puse el enlace como un ejemplo para que aprendas. Más bien, solo como un ejemplo de mí poniendo mi código ahí afuera. Si realmente quieres aprender, debes escribir el código tú mismo, no solo leer el de otra persona (en mi opinión, al menos)

RHSeeger
fuente
+1: Hago lo mismo, excepto que prácticamente nunca comparto los resultados porque necesito aprender haciendo y no solo copiando , y asumo que otras personas son iguales. (OTOH, ocasionalmente uno de mis experimentos se escapa a la naturaleza y se convierte en un producto real.)
Donal Fellows
Honestamente, comencé a compartir por tres razones: 1) para que mi código pudiera vivir en otro lugar además del repositorio svn local que tengo, 2) para que, cuando la gente pida ejemplos de mi código en una tecnología específica, pueda vincularlos a él (anteriormente no tenía ni dicho código para mostrarlos), 3) Cuando la gente hace preguntas de mí sobre cómo hacer algo y lo he hecho, puedo mostrar más fáciles
RHSeeger
+1. Esa es una muy buena idea. Pero esto no responde completamente a mi pregunta. Incluso para hacer esto, tengo que comenzar en alguna parte, pero no sé dónde. Escanear cualquier tema al azar no me ayuda.
Bhushan
1
Se agregó una descripción rápida de cómo hago para aprender específicamente sobre frameworks web; El camino que tomo. Desafortunadamente, eso es lo mejor que puedo dar por ahora. Con suerte, si no es suficiente, alguien más puede proporcionar una respuesta más adecuada a su situación.
RHSeeger
2

Estaba en una situación muy similar no hace mucho. Esto es más o menos lo que en retrospectiva, encontré el enfoque más útil para aprender rápidamente los conceptos básicos de una nueva tecnología:

Enfoque general:

  1. Descubre qué problema resuelve. Lea varios recursos como la página de inicio del proyecto, el artículo de Wikipedia.
  2. Encuentre un pequeño proyecto que contenga dicho problema . Por ejemplo, en su caso, una pequeña aplicación web que administra su colección de DVD con la posibilidad de prestarla a sus amigos.
  3. Comience a pensar qué mecanismos esperaría que le brindara la tecnología . Por ejemplo, para una solución ORM, un mecanismo para especificar si una relación es 1:no n:n.
  4. Busque estos mecanismos en su tecnología : por ejemplo, en JPA, encuentre la @OneToManyanotación. A menudo, aquí es donde trabaja usted mismo a través de una Guía de inicio o el código del desarrollador principal.
  5. Implemente su mini proyecto utilizando estos mecanismos . Al hacerlo, descubrirá las limitaciones y probablemente algunas otras características. Por ejemplo, en JPA, el N + 1 selecciona un problema o una característica que le permite soltar automáticamente y (re) crear tablas para sus clases de Java.
  6. (Si puede permitirse el tiempo): intente comprender cómo implementaría los mecanismos . Hacerlo puede ayudarlo a comprender por qué existen ciertas limitaciones y cómo puede solucionarlas.

Una nota sobre las Guías de inicio: no las lea antes del paso 4. Si aún lo hace, esto lo morderá si está aprendiendo marcos muy potentes como Spring con todas sus características sofisticadas. Como siempre en la vida, cuanto más poderosa sea su herramienta, más fácil será arruinarla si realmente no la comprende.

blubb
fuente
-1

Recomiendo Head First Servlets y JSP . Es un gran recurso para aprender sobre Enterprise Java.

Este libro fue escrito para desarrolladores interesados ​​en aprobar el examen Sun Certified Web Component Developer (SCWCD). Sun ha sido adquirido por Oracle y este examen ha sido reemplazado. Más información se puede encontrar aquí .

Britt Wescott
fuente
¿Todavía no están obsoletos los JSP? Son bastante inútiles para las aplicaciones "Web 2.0" que hacen un uso intensivo de AJAX.
Kevin Cline
-1

La documentación en línea de Hibernate es bastante buena. Podrías empezar por ahí.

Kevin Cline
fuente