Может кто-нибудь порекомендовать простой Java веб-приложения рамки? [закрытый]
Я пытаюсь начать работу над тем, что я надеюсь, будет относительно быстрым веб-приложением на Java, но большинство фреймворков, которые я пробовал (Apache Wicket, Liftweb), требуют такой настройки, конфигурации и пытаются обернуть мою голову вокруг Maven, получая все это, чтобы хорошо играть с Eclipse, что я провел весь уик-энд, просто пытаясь добраться до точки, где я пишу свою первую строку кода!
может ли кто-нибудь порекомендовать простую платформу Java webapp, которая не включает Maven, ужасно сложные структуры каталогов или бесчисленные XML-файлы, которые должны быть отредактированы вручную?
30 ответов:
сам не пробовал, но думаю
большой потенциал...
исходя из php и классического asp, это первый веб-фреймворк java, который звучит многообещающе для меня....
Edit by original question asker-2011-06-09
просто хотел предоставить обновление.
Я пошел с игрой, и это было именно то, что я просил. Это требует очень мало конфигурация, и как раз работает из коробки. Это необычно в том, что он избегает некоторых общих лучших практик Java в пользу сохранения вещей как можно более простыми.
в частности, он интенсивно использует статические методы и даже делает некоторый самоанализ по именам переменных, передаваемых методам, что-то не поддерживается API отражения Java.
отношение Play заключается в том, что его первая цель-это полезная веб-платформа и придерживаться общих лучших практик Java и идиомы вторичны по отношению к этому. Этот подход имеет смысл для меня, но Java-пуристам это может не понравиться, и было бы лучше с Apache Калитка.
В общем, если вы хотите построить веб-приложение с удобством и простотой, сравнимой с фреймворком, таким как Ruby on Rails, но в Java и с использованием инструментов Java (например. Eclipse), то Play Framework-отличный выбор.
(обновлено для Spring 3.0)
Я иду с Spring MVC как хорошо.
вам нужно скачать Spring из здесь
чтобы настроить веб-приложение для использования Spring, добавьте следующий сервлет в свой
web.xml
<web-app> <servlet> <servlet-name>spring-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>spring-dispatcher</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app>
затем вам нужно создать свой конфигурационный файл Spring
/WEB-INF/spring-dispatcher-servlet.xml
ваша первая версия этого файла может быть как простой, как:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:component-scan base-package="com.acme.foo" /> <mvc:annotation-driven /> </beans>
Весна после этого автоматически обнаружит классы с аннотацией
@Controller
простой контроллер тогда:
package com.acme.foo; import java.util.logging.Logger; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping("/person") public class PersonController { Logger logger = Logger.getAnonymousLogger(); @RequestMapping(method = RequestMethod.GET) public String setupForm(ModelMap model) { model.addAttribute("person", new Person()); return "details.jsp"; } @RequestMapping(method = RequestMethod.POST) public String processForm(@ModelAttribute("person") Person person) { logger.info(person.getId()); logger.info(person.getName()); logger.info(person.getSurname()); return "success.jsp"; } }
и
details.jsp
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> <form:form commandName="person"> <table> <tr> <td>Id:</td> <td><form:input path="id" /></td> </tr> <tr> <td>Name:</td> <td><form:input path="name" /></td> </tr> <tr> <td>Surname:</td> <td><form:input path="surname" /></td> </tr> <tr> <td colspan="2"><input type="submit" value="Save Changes" /></td> </tr> </table> </form:form>
это только верхушка айсберга в отношении того, что весна может сделать...
надеюсь, что это помогает.
Я действительно канавки полосы. Общая настройка включает в себя некоторые вырезать и вставить XML в веб-приложение.xml, а потом вы уходите. Конфигурация не требуется, так как Stripes-это платформа для настройки по соглашению. Переопределение поведения по умолчанию выполняется с помощью аннотаций Java 1.5. Документация отличная. Я потратил около 1-2 часов на чтение учебника и настройку своего первого приложения.
Я не могу сделать углубленное сравнение с распорками или Spring-MVC еще, так как я еще не построил полномасштабный в нем (как у меня в распорках), но похоже, что он будет масштабироваться до этого уровня архитектуры довольно хорошо.
вы ищете http://grails.org/
вы кодируете его с помощью groovy, динамического языка, основанного на Java и плавно работающего вместе с Java-кодом, классами и библиотеками. Синтаксис не трудно узнать, ни далеко от Java. Дайте ему попробовать, это несколько минут, чтобы получить сайт и работает. Просто следуйте http://grails.org/Installation и http://grails.org/Quick + Старт
Greetz, GHad
Проверьте WaveMaker для создания быстрого, простого веб-приложения. У них есть браузер на основе drag-and-drop designer для виджетов Dojo/JavaScript, а бэкэнд-это 100% Java.
полосочки : очень хорошо. книга об этом вышла от прагматичных программистов:http://www.pragprog.com/titles/fdstr/stripes. нет XML. Требуется java 1.5 или более поздней версии.
гобелен: попробовали старую версию 3.х. Мне сказали, что текущая версия 5.X находится в бета-версии, и довольно неплохо.
полосы должны быть лучше с точки зрения ухода за maven, без xml и обертывания головы вокруг быстро.
BR,
-А
Grails написан для Groovy, а не Java. AppFuse просто сокращает время установки, необходимое для запуска любого количества фреймворков Webapp, а не для продвижения любого из них.
Я бы предложил Spring MVC. После выполнения хорошо написанных учебников, вы будете иметь простую, легкую модель авто-проводной (без конфигурации XML!) в любой вид технологии вам нравится.
хотите добавить действие "удалить" в свой список клиентов? Просто добавьте метод с именем "удалить контроллер клиента, и он автоматически подключен к URL / customers / delete.
нужно привязать параметры запроса к объекту? Просто добавьте экземпляр целевого объекта в свой метод, и Spring MVC будет использовать отражение для привязки ваших параметров, что делает запись вашей логики такой же простой, как если бы клиент передал строго типизированный объект для начала.
надоело все вынужденное разделение труда MVC? Просто верните ваш метод void и напишите свой ответ непосредственно на писатель сервлета, если это ваше дело.
Apache калитка, Liftweb) требуют так много настройки, конфигурации
Я не согласен, я использую калитки для всех моих проектов, и никогда не оглядывался назад! это не займет много времени, чтобы настроить, даже не час, чтобы настроить полную среду для работы с калиткой..
The Stripes Framework - это отличная база. Единственная конфигурация, связанная с вставкой нескольких строк в вашем интернете.XML.
Это очень прямой запрос на основе Java web framework.
взгляните на веб-фреймворк Ninja.
Это чистый Java MVC фреймворк в традициях Rails. Он не использует конфигурацию на основе xml и имеет все, что вам нужно, чтобы начать работу сразу: управление сеансами, управление безопасностью, рендеринг html, рендеринг json и синтаксический анализ, рендеринг xml и синтаксический анализ. Он также оснащен встроенной средой тестирования и на 100% совместим с традиционными контейнерами сервлетов.
Он использует Maven, хотя - но Maven используется правильно делает разработку программного обеспечения супер просто. Он также позволяет использовать любую Ide сразу:)
кстати-разработка Ninja действительно продуктивна-внесите изменения в свой код и сразу увидите результаты.
Проверьте:http://www.ninjaframework.org.
Мне нравится писать простые старые сервлеты+ winstone сервлет контейнер. Оттуда я болт на templating (velocity, XSLT и т. д.) и DB access (hibernate, torque и т. д.) библиотеки, поскольку они мне нужны, а не для реальной структуры.
Я действительно не вижу, в чем проблема с получением maven + eclipse для работы, если вам не нужно менять pom.xml слишком много :)
большинство фреймворков, которые пользователь maven имеет Maven архетипы, которые могут генерировать проект заглушки.
Так что в основном шаги должны быть:
- установить maven
- добавить переменную пути класса M2_REPO в eclipse
- создать проект с архетипом
- импортировать проект в затмение
Что касается калитки, нет никаких причин, почему вы не могли бы использовать его без maven. Хорошая вещь о maven заключается в том, что он заботится обо всех зависимостях, поэтому вам не нужно. С другой стороны, если единственное, что вы хотите сделать, это прототип пару страниц, чем калитка может быть перебор. Но, если ваше приложение будет расти, в конечном итоге, преимущества калитки будут отображаться с каждой добавленной формой, ссылкой или страницей:)
попробовать Apache Click
Это похоже на калитку, но гораздо более продуктивно и легко учиться.
гобелен 5 можно настроить очень быстро, используя архетипы maven. Смотрите учебник гобелен 5: http://tapestry.apache.org/tapestry5/tutorial1/
правильный ответ ИМО зависит от двух вещей: 1. Какова цель веб-приложения, которое вы хотите написать? Вы только сказали нам, что вы хотите писать быстро, но не то, что вы на самом деле пытаетесь сделать. Например. нужна ли ему база данных? Это какое-то бизнес-приложение (подсказка: может быть, поиск "лесов")? ..или игра? ..или вы просто экспериментируете с sthg? 2. С какими фреймворками вы сейчас больше всего знакомы? Что часто занимает больше всего времени, так это чтение документов и выяснение того, как все происходит (действительно работать. Если вы хотите сделать это быстро, придерживайтесь вещей, которые вы уже хорошо знаете.
после многих болезненных переживаний с распорками, гобелен 3/4, JSF, JBoss шов, GWT я буду придерживаться калитки на данный момент. Калитка скамейка для Eclipse удобно, но не 100% полный, все еще полезно, хотя. Плагин MyEclipse для развертывания в Tomcat - это ace. Нет Maven просто развернуть один раз, изменения автоматически копируются в Tomcat. Магия.
мое предложение: калитка 1.4, MyEclipse, Subclipse, Wicket Bench, Tomcat 6. Это займет час или около того, чтобы настроить, но большая часть этого будет загружаться tomcat и плагины Eclipse.
подсказка: не используйте калитки библиотеки скамейке, установите вручную калитки 1.4 библиотеки в проект.
этот сайт занял у меня около 2 часов, чтобы написать http://ratearear.co.uk - Не ходи туда с работы!! А это примерно 3 дня работы http://tnwdb.com
удачи. Тим
The web4j инструмент продает себя как простой и легкий. Некоторые моменты об этом:
- использует один XML-файл (веб.xml-файл требуется для всех сервлетов)
- нет зависимости от Maven (или любого другого стороннего инструмента/jar)
- полный стек, с открытым исходным кодом (BSD)
- наименьшее количество классов любого полного стека java framework
- SQL помещается в обычные текстовые файлы
- поощряет использование неизменяемых объекты
- требуется минимальный набор инструментов (JSP/JSTL, Java, SQL)
Grails-это способ пойти, если вам нравится легко делать CRUD и создавать быстрое прототипное приложение, а также хорошо играть с Eclipse. Следуйте инструкциям "Создайте свое первое приложение Grails" здесь http://grails.org/Tutorials и вы можете запустить свое собственное приложение менее чем за час.
вы можете дать JRapid попробовать. С помощью Domain Driven Design вы определяете свое приложение, и оно генерирует полный стек для вашего веб-приложения. Он использует известные фреймворки с открытым исходным кодом и генерирует очень приятный и готовый к использованию пользовательский интерфейс.
Я не использовал его AppFuse предназначен для облегчения неприятной установки, которая поставляется с веб-разработкой Java.
попробуйте Wavemaker http://wavemaker.com бесплатный, простой в использовании. Кривая обучения для создания великолепных Java-приложений с WaveMaker-это всего несколько недель!
Castleframework
http://maven.castleframework.org/nexus/content/repositories/releases/
установить с помощью maven.
попробовать фреймворк Vaadin! Очень просто, и вы сможете работать с пользовательским интерфейсом с легкостью, а также! www.vaadin.com
на днях я нашел действительно легкий веб-фреймворк Java.
Это называется Jodd и дает вам многие основы, которые вы ожидаете от весны, но в действительно легком пакете это
посмотрите activeweb. его простой, легкий и использует несколько других вещей, которые мне нравятся (guice, maven...). Его контроллеры могут служить все, что вы хотите, включая json, Html, обычный текст, PDF-файлы, изображения... Вы можете сделать restful контроллеры и даже использовать аннотации, чтобы определить, какие методы http(POST, GET,...) метод контроллера принимает.
Я думаю придерживаться JSP, сервлетов и JSTL После более чем 12 лет работы с веб-фреймворками в нескольких компаниях, с которыми я работал, я всегда возвращаюсь к старому доброму JSP. Да, есть некоторые вещи, которые вам нужно написать самостоятельно, что некоторые фреймворки делают автоматически. Но если вы подходите к нему правильно и создаете некоторые базовые utils поверх ваших сервлетов, это дает лучшую гибкость, и вы можете легко делать все, что захотите. Я не нашел реальных преимуществ писать ни в одном из них рамки. И я продолжаю искать.
глядя на все ответы выше также означает, что нет реальной рамки, которая хороша и правила.
вы пробовали DWR? http://directwebremoting.org
недавно я нашел AribaWeb рамки, которые выглядят очень многообещающе. Он предлагает хорошую функциональность (даже AJAX), хорошую документацию. написана на Groovy / Java и даже включает в себя Tomcat-сервер. Пытаюсь попасть в Весна действительно разозлил меня.