Как насчет Play Framework ?
Соглашение по конфигурации
Play имеет только несколько файлов конфигурации. Большая часть его структуры условно.
Например, базовая структура выглядит следующим образом:
|
+---/app - All executable artifacts go here (java files, conf files and view templates).
| |
| +---/model - Your model Java classes.
| |
| +---/view - Your view templates.
| |
| +---/controller - Your controller classes
|
|---/conf - Contains all configuration files for the application. Initially contains application configuration and routing table.
|
|---/lib - Libraries your appliaction needs. Added automatically to classpath.
|
|---/log
|
|---/public - Public stuff are your static assets that your server gives directly
|
|---/test
|
|---/tmp - All your temporarily compiled .class files are here
Нет конфигурации XML, за исключением web.xml
Play не имеет конфигурации XML, в том числе web.xml. Вместо этого у него есть файл маршрутизации. Ниже приведен пример того, что он использует для маршрутизации.
Чистая Java (без Scala, без Groovy, ...)
Это чистая Java, но вы можете использовать Scala или Groovy через плагин.
- естественные URL-адреса в стиле REST, такие как / news / 2011 / июль (no .do, no .jsp, ...)
- REST-известно
С сайта:
Play is a real "Share nothing" system. Ready for REST, it is easily scaled by running multiple instances of the same application on several servers.
На самом деле маршрутизация в режиме отдыха очень проста:
# Play 'routes' configuration file…
# Method URL path Controller
GET / Application.index
GET /about Application.about
POST /item Item.addItem
GET /item/{id} Item.getItem
GET /item/{id}.pdf Item.getItemPdf
Нетрудно догадаться, что произойдет, когда вы привыкнете немного играть.
- это не должно заставлять меня развертываться на сервере приложений (например, EJB должен быть необязательным)
Это не так. На самом деле вы развертываете, сохраняя свои файлы. EJB полностью необязательны, как и .war
, .ear
и другие формы развертывания.
генерация кода как в Rails была бы классной, но не обязательной
Я не думаю, что это генерирует много кода, но я не на 100% в этом. Он автоматически создает все необходимые папки и создает базовый пример страницы. Я не знаю, генерирует ли Rails что-нибудь еще ...
MVC было бы неплохо, но
- Я бы хотел иметь возможность выбрать деталь М, самостоятельно выбрать библиотеки постоянства (без связывания).
- Нет автоматически сгенерированного кода для представления, ни HTML, Javascript, ни CSS
- Встроенный язык шаблонов был бы хорош, но он должен быть минималистичным (простой поток управления,
См. MVC в игре
- Думаю, это незначительный контрапункт. Модели Play должны использовать JPA или расширять определенный класс Model, который поставляется с Play. Для получения дополнительной информации см. Play framework-model .
- Он не генерирует HTML, хотя вы можете использовать язык шаблонов внутри ваших
.html
, .css
, .js
и других файлов для создания динамических страниц.
У меня есть встроенный язык шаблонов на основе языка шаблонов Groovy, например.
You have ${emails.unread ?: 'no'} ${emails.unread?.pluralize('email')} !
Другие плюсы:
- Программирование довольно забавно.
- Я упомянул горячую замену, которая позволяет вам повторно развернуть приложение, сохранив исходные файлы?
- Большие журналы ошибок.
Минусы:
- Это 51 МБ, не уверен, что это считается легким: /