Вопрос

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

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

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

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

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

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

Редактировать :каковы мои потребности:Java-фреймворк, который:

  • хорошо документировано/легко получить помощь/настолько просто, насколько это возможно...
  • чем больше Java, тем лучше
  • Дружественный к Ajax/возможность создания красивого пользовательского интерфейса...
  • Интернационализация
  • Будучи еще студентом, конкурентоспособность навыков может иметь значение...

Приложение, которое нужно создать, является одновременно

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

полные характеристики еще не закончены.

Это было полезно?

Решение

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

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

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

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

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

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

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

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

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

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

Другие советы

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

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

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

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

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

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

Если вам нужен интерфейс Ajax, стоит взглянуть на ЗК рамки;его очень легко использовать без необходимости изучать JavaScript и избегать использования сантехнических библиотек, таких как DWR.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top