Как создать веб-приложение на Java - PullRequest
5 голосов
/ 16 мая 2009

Скоро мне нужно будет запустить веб-проект для компании, и теперь мне нужно выбрать технологию для создания приложения. Я думаю об использовании Java, поэтому я хотел бы найти среду, которая поможет мне построить приложение (я привык к PHP-среде, такой как CakePHP & CodeIgniter).

Что я не понимаю, так это то, что, похоже, существует множество фреймворков и технологий, которые не имеют той же цели. Каркас действий, Каркас компонентов ... что я могу сделать с одним, а с другим - нет? Кажется, веб-приложение на Java должно быть разработано путем смешивания множества различных технологий, поэтому я немного растерялся ... Я посмотрел на различные Java-фреймворки, такие как JSF, Stripes, Struts2, Tapestry, Wicket и Spring. Что касается последующего, я не вижу, каковы различные части этой структуры, что она может сделать для меня, а что нет. Что я могу взять из весны и что мне не нужно ...

Следовательно: что мне нужно для создания веб-приложения Java?

Я уже использовал JSF для базового приложения CRUD, но я пытаюсь найти что-то, что может лучше соответствовать моим потребностям. Приложение, которое нам предстоит создать, будет как платформой сообщества, так и торговым сайтом с разумными данными для защиты:)

Об ORM, наверное, я просто перейду с Hibernate ... Также я слышал о Maven или Ant, чем они могут мне помочь?

Любой совет / руководство будет высоко ценится :-) Заранее спасибо.

Редактировать: что мне нужно: Java-фреймворк:

  • хорошо документировано / легко получить помощь / максимально просто ...
  • чем больше java, тем лучше
  • Ajax friendly / Средство для создания приятного интерфейса ...
  • Интернационализация
  • Будучи студентом, «Рыночные навыки» могут иметь значение ...

Приложение для сборки -

  • Сайт сообщества: web 2.0, CRUD
  • Сайт электронной коммерции

полные спецификации еще не закончены.

Ответы [ 5 ]

9 голосов
/ 16 мая 2009

Это очень сложный вопрос, потому что я недавно попал в вашу ситуацию и постараюсь дать некоторое представление. По сути, с Java существует множество вариантов для фреймворков, и никто не может сказать, какая из них лучше всего подходит для вас, что мы можем сделать, это дать вам описание некоторых технологий.

Вот то, с чем я столкнулся в поисках тех же самых ответов, которые вы хотите.

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

По сути, существует три уровня веб-приложений: уровень представления, бизнес и уровень данных. Уровень представления - это внешний интерфейс, который видит пользователь. Обычно вы можете смешивать и сочетать технологии для этих трех слоев. Например, вы можете использовать интерфейс полосы с Spring Framework для IOC и Hibernate в качестве ORM.

Существует множество великолепных технологий, которые вы можете использовать для уровня представления, включая Spring-MVC, STRUTS, Stripes, Wicket, JSF / SEAM и Tapestry. Большинство из них используют JSP для представления с использованием JSTL, за исключением wicket, который фактически полностью отделяет html от логики с помощью Java-компонентов (POJOS). У обоих подходов есть свои преимущества и недостатки. Преимущество подхода с калиткой заключается в том, что у вас есть статическая проверка типов и полное разделение html, чтобы вы могли передать его своему дизайнеру.

Обычно для бизнес-уровня люди используют некую платформу Inversion of Control (IOC) для внедрения зависимостей (DI). Популярными средами для IOC являются Spring и Seam, они связаны с такими технологиями, как Spring-security, и обычно поддерживаются другими технологиями. Похоже, что Google Guice популярен для прямого интерфейса DI.

Наконец, для слоя данных большинство людей склонны использовать Hibernate или JPA. Есть и другие, но я не имею опыта работы с ними и не могу предложить больше информации.

Гобелен - это еще один фреймворк, который пытается быть полным стеком, исходя из того, что я понимаю, и использует подход, похожий на калитку (или, я полагаю, Wicket использует гобеленовый) подход. Grails - это еще один полнофункциональный фреймворк, использующий Groovy и построенный на основе Spring и Hibernate. Если вам нравятся Rails, Grails довольно хорош.

Большинство из этих технологий имеют много доступной информации и очень активные списки рассылки / IRC-чаты. Что вам нужно сделать, это взглянуть на них, а затем решить, какой подход является правильным для вас. Никто здесь не может сказать вам, что вам понравится.

Если вам нужна рекомендация, я бы однажды использовал стек Wicket / Guice / Hibernate.

3 голосов
/ 16 мая 2009

Мой любимый, безусловно, весна. Новый Spring MVC 2.5 прост в установке, множество аннотаций, которые помогут вам декларативно подключить ваши контроллеры, что сэкономит вам много времени на печатание. Он также интегрируется с контейнером Spring, который, безусловно, является моим любимым облегченным контейнером для замены J2EE. Я обычно комбинирую SpringMVC с простой JSP, но есть много других технологий просмотра, из которых можно выбирать. Для настойчивости я обычно использую Hibernate. Возможно, стоит взглянуть на Spring ROO , который похож на Grails без Groovy. Spring Security предлагает приятный и простой декларативный способ обеспечения безопасности и интегрируется в целый ряд технологий аутентификации.

Maven и ant оба являются инструментами сборки, в то время как maven также обрабатывает зависимости для вас. Вы «просто» настраиваете дескрипторы, которые описывают нужные библиотеки и требования к версии, и maven загрузит все библиотеки и их зависимости для вас. Это заставляет вас следовать определенной схеме проекта. Для муравья есть плющ, который делает зависимости.

2 голосов
/ 16 мая 2009

Определенно используйте Spring для задней части; на их бесплатном форуме поддержки есть отличное сообщество (вы также можете заплатить за более официальную поддержку).

Что касается вашего решения использовать Hibernate, вы можете захотеть кодировать против JPA, чтобы отделить свое приложение от Hibernate (который является одной из нескольких реализаций JPA).

Если вы хотите Ajax-интерфейс, стоит взглянуть на ZK framework; он очень прост в использовании без изучения JavaScript и не требует использования таких библиотек, как DWR.

2 голосов
/ 16 мая 2009

Предлагаю вам взглянуть на Grails . Grails - это платформа веб-приложений «по кодированию по соглашению», построенная на стеке проверенных сред Java (Spring, Hibernate, ...) и использующих язык Groovy ..

Прелесть Grails в том, что вам не нужно много знаний о Spring, Hibernate и т. Д., Чтобы начать. Но после этого у вас все еще есть доступ ко всем возможностям этих структур, если это будет необходимо.

1 голос
/ 16 мая 2009

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

Я бы посоветовал вам уделить некоторое время каждой инфраструктуре или технологии, прежде чем переходить к ней, но в конечном итоге вы захотите заставить их работать вместе. Например, вам может потребоваться настройка Struts + Spring + Hibernate. Их настройка может быть головной болью.

Поэтому я предлагаю вам использовать AppFuse , который помогает при создании базового приложения с основными функциями. Это огромная экономия времени. Вам, конечно, нужно понимать различные фреймворки, которые настроены для вас, так что это не волшебное решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...