Как начать изучать J2EE, особенно JPA [закрыто]

11

Я пытаюсь начать изучать J2EEчасть Java. Но я не знаю с чего начать. Я знаком с Core Javaи, главным образом, я хочу изучить JPAи основы Hibernateи Spring Framework. Основная причина этого - я работаю над проектом, который использует все эти вещи. И большая часть кода разрабатывается некоторыми старшими ребятами, и я должен внести некоторые изменения в это. Так что в основном мне нужно понять их код.

Может ли кто-нибудь дать мне своего рода дорожную карту, например, какие вещи мне нужно знать заранее и в какой последовательности мне идти? Любой справочный материал, как ссылки, книги?

Бхушан
источник
1
Есть ли у этих пожилых людей время, чтобы познакомить вас с тем, что они уже сделали?
@ Thorbjørn Равн Андерсен: Если я задам некоторые сомнения, он объясняет мне это. Но дело в том, что код умеренно большой (~ 10000 строк). Поэтому, если мне нужно что-то сделать, мне нужно просмотреть много исходных файлов и множество строк кода, которые, я думаю, не могут попросить их полностью объяснить меня. В принципе, я не знаком с JPA и Spring Framework, и вообще с J2EE. Поэтому я искал кое-что, что поможет мне понять, как все это работает, и основы, чтобы я, по крайней мере, не задавал глупых сомнений.
Бхушан

Ответы:

7

Всякий раз, когда я хочу выучить новый фреймворк / язык, я обычно создаю небольшой проект, который его использует. Для веб-фреймворка у меня есть общее веб-приложение, которое я пишу, используя его. Это просто и мало что делает, но в нем достаточно функций, которые мне нужны, чтобы воспользоваться преимуществами более распространенных частей фреймворка (базы данных, фоновых заданий, mvc или чего-либо подобного). На самом деле, не так давно я взялся за изучение Spring / MVC + Hibernate. Я не знаю всего этого, конечно, но это дало мне достаточно предыстории, чтобы, когда я чего-то не знал, я знал, какие вопросы задавать и как их задавать, чтобы получить больше информации.

Для веб-фреймворков я обычно начинаю с простого примера "Привет, мир", который предоставляется для большинства фреймворков. Если у него есть пример "гостевой книги" (то есть, чтобы показать использование базы данных), я продолжу с этим. С этого момента я просто начинаю добавлять нужные функции в свое учебное приложение, начиная с самого простого. Идея в том, что я могу понять, как задавать правильные вопросы для простых вещей. После того, как я сделал несколько простых вещей, я могу взглянуть на более сложные вещи и, опираясь на информацию, которую я уже узнал, я могу сформулировать правильные вопросы, которые можно задать.

Я недавно начал размещать код для таких учебных проектов на sourceforge , если вам интересно.

Изменить: комментарий Донала сделал мы хотим добавить ... Я не поместил ссылку в качестве примера, чтобы вы могли учиться. Скорее, просто как пример того, как я выложил свой код. Если вы действительно хотите учиться, вам нужно написать код самостоятельно, а не просто читать чужой (по моему мнению, по крайней мере)

RHSeeger
источник
+1: Я так же , за исключением того, что я практически никогда не разделяют результаты на том основании , что мне нужно учиться, делать , а не просто копирование , и я полагаю , что другие люди такие же. (OTOH, иногда один из моих экспериментов убегает в дикую природу и превращается в реальный продукт.)
Donal Fellows
Честно говоря, я начал делиться по трем причинам: 1) чтобы мой код жил где-то еще, кроме имеющегося у меня локального хранилища svn, 2) чтобы, когда люди спрашивали примеры моего кода в конкретной технологии, я мог связать их с ним (раньше у меня не было такого кода, чтобы показать их), 3) Когда люди задают мне вопросы о том, как что-то сделать, и я сделал это, я могу показать их проще
RHSeeger
+1. Это действительно хорошая идея. Но это не полностью отвечает на мой вопрос. Даже для этого я должен начать где-нибудь, но я не знаю где. Случайное сканирование любой темы мне не помогает.
Бхушан
1
Добавлено краткое описание того, как я изучаю веб-фреймворки; путь, по которому я иду К сожалению, это лучшее, что я могу дать сейчас. Надеюсь, если этого недостаточно, кто-то другой может дать ответ, более подходящий для вашей ситуации.
RHSeeger
2

Я был в очень похожей ситуации не так давно. Вот примерно то, что в ретроспективе я нашел самый полезный подход для быстрого изучения основ новой технологии:

Общий подход:

  1. Узнайте, какую проблему это решает. Читайте различные ресурсы, такие как домашняя страница проекта, статья в Википедии.
  2. Найдите небольшой проект, который содержит указанную проблему . Например, в вашем случае небольшое веб-приложение, управляющее вашей коллекцией DVD-дисков с возможностью их передачи друзьям.
  3. Начните думать о том, какие механизмы вы ожидаете от этой технологии . Например, для решения ORM - механизм, который определяет, является ли отношение 1:nили n:n.
  4. Ищите эти механизмы в своей технологии : например, в JPA, найдите @OneToManyаннотацию. Часто здесь вы работаете самостоятельно с помощью руководства по началу работы или кода старшего разработчика.
  5. Реализуйте свой мини-проект, используя эти механизмы . При этом вы обнаружите ограничения и, возможно, некоторые другие функции. Например, в JPA N + 1 выбирает проблему или функцию, позволяющую автоматически удалять и (заново) создавать таблицы для ваших классов Java.
  6. (Если вы можете позволить себе время): попытайтесь понять, как вы будете реализовывать механизмы . Это поможет вам понять, почему существуют определенные ограничения и как их обойти.

Одно замечание о руководстве по началу работы: Не читать их до шага 4. Если вы все еще делаете, это будет кусать вас , если вы изучаете очень мощные рамки , как Spring со всеми его особенностями фантазии. Как всегда в жизни, чем мощнее ваш инструмент, тем легче его облажать, если вы по-настоящему не понимаете его.

blubb
источник
-1

Я рекомендую Head First Servlets и JSP . Это отличный ресурс для изучения корпоративной Java.

Эта книга была написана для разработчиков, заинтересованных в сдаче экзамена Sun Certified Web Component Developer (SCWCD). С тех пор Sun была приобретена Oracle, и этот экзамен был заменен. Более подробную информацию можно найти здесь .

Бритт Уэскотт
источник
JSP еще не устарели? Они довольно бесполезны для приложений "Web 2.0", которые интенсивно используют AJAX.
Кевин Клайн
-1

Документация по Hibernate онлайн довольно хорошая. Вы могли бы начать там.

Кевин Клайн
источник