Como começar a aprender J2EE, especialmente JPA [fechado]

11

Estou tentando começar a aprender a J2EEparte Java. Mas não sei por onde começar. Sou familiar com Core Javae principalmente, quero aprender JPAe o básico de Hibernatee Spring Framework. A principal razão para isso é que estou trabalhando em um projeto que está usando todas essas coisas. E a maior parte do código está sendo desenvolvida por alguns caras seniores e eu tenho que fazer algumas modificações nisso. Então, basicamente, eu preciso entender o código deles.

Alguém pode me dar uma espécie de roteiro, como quais coisas eu preciso saber de antemão e em qual sequência devo ir? Algum material de referência, como links, livros?

Bhushan
fonte
1
Esses idosos têm tempo para apresentar o que fizeram até agora?
@ Thorbjørn Ravn Andersen: Se eu tiver alguma dúvida, ele me explica isso. Mas o problema é que o código é moderadamente grande (~ 10000 linhas). Portanto, se eu tiver que fazer alguma coisa, preciso passar por muitos arquivos de origem e muitas linhas de código, o que acho que não posso pedir para que me expliquem completamente. Basicamente, eu não estou familiarizado com o JPA e o Spring Framework e, em geral, o J2EE. Então, eu estava procurando por algumas coisas que me ajudariam a entender como tudo funciona e o básico, para que eu pelo menos não faça algumas dúvidas estúpidas.
Bhushan

Respostas:

7

Sempre que eu quero aprender uma nova estrutura / linguagem, costumo criar um pequeno projeto que a use. Para uma estrutura da web, eu tenho um aplicativo da web comum que escrevo usando-o. É simples e não faz muito, mas possui recursos suficientes para que eu precise aproveitar as partes mais comuns da estrutura (banco de dados, trabalhos em segundo plano, mvc ou qualquer outro semelhante). De fato, há pouco tempo, assumi a tarefa de aprender o Spring / MVC + Hibernate. Certamente não sei tudo, mas isso me deu uma base suficiente para que, quando não sei de nada, sei quais perguntas fazer e como pedir para obter mais informações.

Para estruturas da Web, geralmente começo com o exemplo simples "olá mundo", fornecido para a maioria das estruturas. Se houver um exemplo de "livro de visitas" (ou seja, para mostrar o uso do banco de dados), eu continuo com isso. A partir daí, comecei a adicionar a funcionalidade desejada no meu aplicativo de aprendizado, começando pelo mais simples. A ideia é que eu possa descobrir como fazer as perguntas certas para as coisas simples. Depois de fazer algumas coisas simples, posso analisar as coisas mais complexas e, com as informações que já aprendi, espero formular as perguntas certas para solicitá-las.

Recentemente, comecei a colocar o código para esses projetos de aprendizado no sourceforge , se você estiver interessado.

Edit: O comentário de Donal nos fez querer adicionar ... Eu não coloquei o link como um exemplo para você aprender. Pelo contrário, apenas como um exemplo de eu colocar meu código lá fora. Se você quer realmente aprender, precisa escrever o código você mesmo, não apenas ler o código de outra pessoa (na minha opinião, pelo menos)

RHSeeger
fonte
+1: Faço o mesmo, exceto que eu praticamente nunca compartilho os resultados com base no fato de que preciso aprender fazendo e não apenas copiando , e presumo que outras pessoas sejam iguais. (OTOH, ocasionalmente, uma das minhas experiências escapa para a vida selvagem e evolui em um produto real.)
Donal Fellows
Honestamente, comecei a compartilhar por três razões: 1) Para que meu código morasse em algum lugar além do repositório svn local que eu tenho, 2) Para que, quando as pessoas solicitem exemplos do meu código em uma tecnologia específica, eu possa vinculá-los a ele (antes eu não tinha esse código para mostrar a eles), 3) Quando as pessoas fazem perguntas de mim sobre como fazer alguma coisa e eu fiz isso, eu posso mostrar-lhes mais fácil
RHSeeger
+1. É uma ideia muito boa. Mas isso não responde totalmente à minha pergunta. Mesmo para fazer isso, tenho que começar em algum lugar, mas não sei por onde. Digitalizar qualquer tópico aleatoriamente não está me ajudando.
Bhushan
1
Adicionada uma descrição rápida de como eu aprendi especificamente sobre estruturas da Web; o caminho que tomo. Infelizmente, é o melhor que posso dar por enquanto. Felizmente, se não for suficiente, alguém poderá fornecer uma resposta mais adequada à sua situação.
precisa saber é o seguinte
2

Eu estava em uma situação muito semelhante não faz muito tempo. Aqui está aproximadamente o que, retrospectivamente, encontrei a abordagem mais útil para aprender rapidamente o básico de uma nova tecnologia:

Abordagem geral:

  1. Descubra qual problema ele resolve. Leia vários recursos, como a página inicial do projeto, o artigo da Wikipedia.
  2. Encontre um pequeno projeto que contenha o problema . Por exemplo, no seu caso, um pequeno aplicativo da web gerenciando sua coleção de DVDs com a possibilidade de emprestá-las a amigos.
  3. Comece a pensar sobre quais mecanismos você espera que sejam fornecidos pela tecnologia . Por exemplo, para uma solução ORM, um mecanismo para especificar se uma relação é 1:nou n:n.
  4. Procure esses mecanismos em sua tecnologia : por exemplo, na JPA, localize a @OneToManyanotação. Muitas vezes, é aqui que você trabalha por meio de um Guia de introdução ou do código do desenvolvedor sênior.
  5. Implemente seu miniprojeto usando esses mecanismos . Enquanto isso, você descobrirá as limitações e provavelmente alguns outros recursos. Por exemplo, na JPA, o N + 1 seleciona um problema ou um recurso que permite eliminar automaticamente (re) criar tabelas para suas classes Java.
  6. (Se você puder pagar o tempo): tente entender como você implementaria os mecanismos . Fazer isso pode ajudar a entender por que existem certas limitações e como você pode contorná-las.

Uma observação sobre os Guias de introdução: não os leia antes da etapa 4. Se você ainda o fizer, isso o incomodará se você estiver aprendendo estruturas muito poderosas, como o Spring, com todos os seus recursos sofisticados. Como sempre na vida, quanto mais poderosa for sua ferramenta, mais fácil você estragará se não a entender de verdade.

blubb
fonte
-1

Eu recomendo Head First Servlets e JSP . É um ótimo recurso para aprender sobre Enterprise Java.

Este livro foi escrito para desenvolvedores interessados ​​em passar no exame Sun Certified Web Component Developer (SCWCD). A Sun foi adquirida pela Oracle e esse exame foi substituído. Mais informações podem ser encontradas aqui .

Britt Wescott
fonte
As JSPs ainda não estão obsoletas? Eles são bastante inúteis para aplicativos "Web 2.0" que fazem uso pesado do AJAX.
Kevin cline
-1

A documentação online do Hibernate é bastante boa. Você poderia começar por aí.

Kevin Cline
fonte