Может ли кто-нибудь рекомендовать простую инфраструктуру веб-приложений Java?

Я пытаюсь начать работу над тем, что, как я надеюсь, будет относительно быстрым веб-приложением на Java, но в большинстве фреймворков, которые я пробовал (Apache Wicket, Liftweb), требуется так много настроек, и, пытаясь обернуть голову вокруг Maven, когда все это прекрасно поработало с Eclipse, я провел весь уик-энд, просто пытаясь добраться до точки, где я пишу свою первую строку кода!

Может ли кто-нибудь рекомендовать простую инфраструктуру Java Webapp, которая не включает Maven, ужасно сложные структуры каталогов или множество XML файлов, которые необходимо отредактировать вручную?

Ответ 1

Не пробовал сам, но думаю

http://www.playframework.org/

имеет большой потенциал...

исходящий из php и классического asp, это первая java-инфраструктура, которая кажется мне многообещающей....

Редактировать оригинальным вопросником - 2011-06-09

Просто хочу предоставить обновление.

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

В частности, он активно использует статические методы и даже делает некоторую интроспекцию имен переменных, переданных методам, что не поддерживается API отражения Java.

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

В общем, если вы хотите создать веб-приложение с удобством и простотой, сопоставимой с инфраструктурой Ruby on Rails, но в Java и с преимуществами инструментария Java (например, Eclipse), то Play Framework отличная выбор.

Ответ 2

(Обновлено для 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>

Spring автоматически определит классы, аннотированные с помощью @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>

Это только верхушка айсберга в отношении того, что может сделать Spring...

Надеюсь, что это поможет.

Ответ 3

Я действительно разбираюсь в Stripes. Полная настройка включает в себя некоторые вырезать и вставлять XML в ваше приложение web.xml, а затем вы отключены. Конфигурация не требуется, так как Stripes - это среда с привязкой к конфигурации. Переопределение поведения по умолчанию выполняется с помощью аннотаций Java 1.5. Документация отличная. Я потратил около 1-2 часов на чтение учебника и настройку своего первого приложения.

Я не могу провести углубленное сравнение с Struts или Spring -MVC, так как я еще не построил в нем полномасштабное (как и в Struts), но похоже, что это будет до уровня этого уровня архитектуры.

Ответ 4

Ищите http://grails.org/

Вы кодируете его с помощью groovy, динамического языка, основанного на Java, и плавно выполняются вместе с Java-кодом, классами и библиотеками. Синтаксис не трудно узнать или далеко от Java. Попробуйте несколько минут, чтобы запустить и запустить веб-сайт. Просто следуйте http://grails.org/Installation и http://grails.org/Quick+Start

Greetz, GHad

Ответ 5

Ознакомьтесь с WaveMaker для создания быстрого простого веб-приложения. У них есть браузер с поддержкой drag-and-drop для виджета Dojo/JavaScript, а бэкэнд - это 100% Java.

Ответ 6

Полосы: довольно хорошо. книга об этом вышла от прагматичных программистов: http://www.pragprog.com/titles/fdstr/stripes. Нет XML. Требуется java 1.5 или новее.

гобелен: попробовали старую версию 3.x. Мне говорят, что текущая версия 5.x находится в бета-версии и довольно хороша.

Полосы должны быть лучше с точки зрения ухода за maven, без xml и быстрой обертывания головы.

BR,
~ А

Ответ 7

Grails написан для Groovy, а не для Java. AppFuse просто уменьшает время настройки, необходимое для запуска любого количества фреймворков Webapp, а не для продвижения любого из них.

Я предлагаю Spring MVC. Следуя хорошо написанным учебным пособиям, у вас будет простая и простая модель с автоматической проводкой (без конфигурации XML!) В любую технологию просмотра, которая вам нравится.

Хотите добавить действие "удалить" в список клиентов? Просто добавьте метод с именем "удалить" к вашему контроллеру клиента, и он будет автоматически передан URL/clients/delete.

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

Больной от принудительного разделения труда MVC? Просто верните свой метод в пустоту и напишите свой ответ прямо на сервлете Writer, если это ваша вещь.

Ответ 8

Apache Wicket, Liftweb) требуют такой настройки, конфигурации

Я не согласен, я использую Wicket для всех своих проектов и никогда не оглядывался назад! это не займет много времени, даже час, чтобы создать полную среду для работы с Wicket..

Ответ 9

Мне нравится Spring MVC, используя 2.5 функции, очень мало задействовано в XML.

Ответ 10

Stripes Framework - отличная основа. Единственная конфигурация включает в себя несколько строк в вашем web.xml.

Это веб-фреймворк Java, основанный на прямом запросе.

Ответ 11

Посмотрите на веб-платформу Ninja.

Это чистая инфраструктура Java MVC в традициях Rails. Он не использует конфигурацию на основе xml и имеет все необходимое для начала работы: управление сеансом, управление безопасностью, рендеринг html, рендеринг и анализ json, рендеринг и анализ XML файлов. Он также оснащен встроенной тестовой средой и на 100% совместим с традиционными контейнерами сервлетов.

Он использует Maven, хотя, но Maven использовал правильно, делает разработку программного обеспечения супер простой. Он также позволяет вам использовать любой Ide сразу:)

Кстати, разработка Ninja действительно продуктивна - внесите изменения в свой код и сразу увидите результаты.

Отъезд: http://www.ninjaframework.org.

Ответ 12

Мне нравится писать простые старые сервлеты + winstone контейнер сервлетов. Оттуда я использую библиотеки templating (скорость, XSLT и т.д.) И библиотеки доступа к базе данных (спящий режим, крутящий момент и т.д.) Так, как они мне нужны, а не для реальной структуры.

Ответ 13

Я действительно не понимаю, в чем дело с тем, чтобы заставить maven + eclipse работать, если вам не нужно слишком много менять pom.xml:)

Большинство фреймворков, которые пользователь maven имеет архетипы maven, которые могут генерировать проект заглушки.

Итак, в основном шаги должны быть:

  • Установить maven
  • Добавить переменную пути класса M2_REPO в eclipse
  • Создать проект с архетипом
  • Импортировать проект в eclipse

Что касается Wicket, нет причин, по которым вы не могли бы использовать его без maven. Самое приятное в maven заключается в том, что он заботится обо всех зависимостях, поэтому вам не нужно. С другой стороны, если единственное, что вы хотите сделать, это прототипирование нескольких страниц, чем Wicket может быть излишним. Но, если ваше приложение будет расти, в конечном итоге преимущества Wicket будут отображаться с каждой добавленной формой, ссылкой или страницей:)

Ответ 14

Попробуйте Apache Нажмите

Это похоже на Wicket, но гораздо более продуктивно и легко учиться.

Ответ 16

Правильный ответ ИМО зависит от двух вещей: 1. Какова цель веб-приложения, которое вы хотите написать? Вы только сказали нам, что хотите написать это быстро, но не то, что вы на самом деле пытаетесь сделать. Например. нужна ли база данных? Это своего рода бизнес-приложение (подсказка: может быть, поиск "строительных лесов" )?.. или игра?.. или вы просто экспериментируете с sthg? 2. Какие рамки вы сейчас наиболее знакомы? То, что часто занимает больше всего времени, - это чтение документов и выяснение того, как работают вещи (действительно). Если вы хотите, чтобы это было сделано быстро, придерживайтесь того, что вы уже хорошо знаете.

Ответ 17

После многих болезненных переживаний со Struts, Tapestry 3/4, JSF, JBoss Seam, GWT, я буду придерживаться Wicket. Wicket Bench для Eclipse удобен, но не на 100% завершен, но все же полезен. Плагин MyEclipse для развертывания в Tomcat - это туз. Нет Maven просто развертывается один раз, изменения автоматически копируются в Tomcat. Магия.

Мое предложение: Wicket 1.4, MyEclipse, Subclipse, Wicket Bench, Tomcat 6. Для установки потребуется около часа, но большая часть из них будет загружать tomcat и плагины Eclipse.

Подсказка: не используйте Wicket Bench libs, вручную установите Wicket 1.4 libs в проект.

Этот сайт занял у меня около 2 часов, чтобы написать http://ratearear.co.uk - не ходите туда с работы!! И это около 3 дней работы http://tnwdb.com

Удачи. Тим

Ответ 18

Инструмент web4j продает себя как простой и простой. Некоторые моменты:

  • использует один xml файл (файл web.xml, необходимый всем сервлетам)
  • нет зависимости от Maven (или любого другого стороннего инструмента/банки)
  • полный стек, с открытым исходным кодом (BSD)
  • наименьшее количество классов любой полной java-инфраструктуры стека
  • SQL, помещенный в текстовые файлы
  • поощряет использование неизменяемых объектов
  • минимальный набор инструментов (JSP/JSTL, Java, SQL)

Ответ 19

Grails - это способ пойти, если вы хотите легко сделать CRUD и создать быстрое прототипное приложение, хорошо играющее с Eclipse. Следуйте инструкциям "Создайте свое первое приложение Grails" здесь http://grails.org/Tutorials, и вы можете запускать собственное приложение менее чем за час.

Ответ 20

Вы можете попробовать JRapid. Используя Domain Driven Design, вы определяете свое приложение и генерируете полный стек для своего веб-приложения. Он использует известные фреймворки с открытым исходным кодом и генерирует очень хороший и готовый к использованию интерфейс.

Ответ 21

Я не использовал его AppFuse, чтобы облегчить неприятную настройку, которая поставляется с Java Web Development.

Ответ 22

попробуйте Wavemaker http://wavemaker.com Бесплатно, легко использовать. Кривая обучения для создания замечательных Java-приложений с WaveMaker составляет всего несколько недель!

Ответ 24

попробуй Ваадин! Очень просто, и вы сможете легко работать с пользовательским интерфейсом! www.vaadin.com

Ответ 25

На днях я нашел действительно легкую веб-среду Java.

Он называется Jodd и дает вам много оснований, которые вы ожидаете от Spring, но в действительно легком пакете, который < 1MB.

http://jodd.org/

Ответ 26

Также посмотрите activeweb. его простой, легкий и использует несколько других вещей, которые мне нравятся (guice, maven...). Его контроллеры могут обслуживать все, что вам нужно, включая json, Html, обычный текст, PDF файлы, изображения... Вы можете создавать успокаивающие контроллеры и даже использовать аннотации, чтобы определить, какие методы http (POST, GET,...) принимают метод контроллера.

Ответ 27

Я бы подумал придерживаться JSP, сервлетов и JSTL После более чем 12 лет работы с веб-фреймворками в нескольких компаниях, с которыми я работал, я всегда нахожу свое собственное возвращение к добрым старым JSP. Да, есть некоторые вещи, которые вам нужно написать себе, что некоторые фреймворки выполняются автоматически. Но если вы подходите к нему правильно и создаете некоторые базовые утилиты поверх своих сервлетов, это дает максимальную гибкость, и вы можете легко делать то, что захотите. Я не нашел реальных преимуществ для записи в любой из фреймворков. И я продолжаю смотреть.

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

Ответ 30

Недавно я нашел AribaWeb Framework, который выглядит очень многообещающим. Он предлагает хорошую функциональность (даже AJAX), хорошую документацию. написанный в Groovy/Java и даже содержащий Tomcat-Server. Попытка попасть в Spring действительно сошла с ума.