1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/actframework-actframework

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Описание фреймворка ACT

Лицензия Apache 2 Maven Central Статус сборки Документация Javadoc Присоединиться к чату Получите поддержку на StackOverflow Запросы на новые возможности

Установка

Добавьте act-starter-parent в ваш файл pom.xml.

  <parent>
    <groupId>org.actframework</groupId>
    <artifactId>act-starter-parent</artifactId>
    <version>1.9.1.0</version>
  </parent>

Или используйте архетип Maven для создания нового проекта:

mvn archetype:generate -B \
    -DgroupId=com.mycom.helloworld \
    -DartifactId=helloworld \
    -DarchetypeGroupId=org.actframework \
    -DarchetypeArtifactId=archetype-quickstart \
    -DarchetypeVersion=1.9.1.0

Подсказка: не забудьте заменить groupId, artifactId и appName в приведённой выше команде, либо вы можете использовать интерактивный режим для генерации вашего проекта:

mvn archetype:generate -DarchetypeGroupId=org.actframework -DarchetypeArtifactId=archetype-quickstart -DarchetypeVersion=1.9.1.0

Примечание: В ActFramework есть больше архетипов приложений. Получите их здесь.

Возможности

  • Полный стек MVC-фреймворк

    • Actframework не является сервлетным фреймворком. Приложение Act не запускается в контейнере сервлетов. Вместо этого оно выполняется как независимое Java-приложение и запускается за несколько секунд.
  • Непревзойдённый опыт разработки с отличной производительностью

    • Никогда не перезапускайте своё приложение во время разработки. Режим разработки Act обеспечивает возможность горячего перезапуска, что делает его мечтой каждого разработчика Java-веб-приложений. Посмотрите это видео продолжительностью три минуты и прочувствуйте это!
    • По данным TechEmpower Framework Benchmark Act превосходит большинство полнотекстовых Java-веб-фреймворков на рынке. В некоторых случаях Act может работать более чем в десять раз быстрее, чем Spring Boot.
  • Полная поддержка внедрения зависимостей согласно JSR330

    • Поддержка внедрения зависимостей ActFramework основана на Genie, легковесной реализации JSR330.
    • Благодаря мощному механизму сканирования классов ActFramework, вам не требуется создавать инжектор из модулей (как обычно используется в Guice). Объявите свой модуль, и ваши привязки будут автоматически зарегистрированы.
  • Отличная поддержка одностраничных приложений (SPA) и мобильных приложений

  • Неуклонная безопасность

  • Сознательное использование аннотаций, но без использования сложных стеков аннотаций

    • Аннотации — один из инструментов, который ActFramework использует для повышения экспрессивности. Однако мы не одобряем случаев, когда аннотации используются слишком часто. Вместо этого мы стремимся сделать код таким образом, чтобы он выражал намерение естественным способом и минимизировать использование аннотаций, где это возможно.

      Например, для следующего кода SpringMVC:

      @RequestMapping(value="/user/{userId}/invoices", method = RequestMethod.GET)
      public List listUsersInvoices(
        @PathVariable("userId") int user,
        @RequestParam(value = "date", required = false) Date dateOrNull) {
          ...
      }

      Соответствующий код приложения ActFramework будет выглядеть так:

      @GetAction("/user/{user}/invoices")
      public List listUsersInvoices(int user, Date date) {
        ...
      }
  • Поддержка многоконфигурационных окружений

    • ActFramework поддерживает концепцию профиля, которая позволяет легко организовать ваши конфигурации в различных окружениях (определённых профилем). Посмотрите на следующие конфигурации из одного из наших реальных проектов:

      resources
        ├── conf
        │   ├── common
        │   │   ├── app.properties
        │   │   ├── db.properties
        │   │   ├── mail.properties
        │   │   ├── payment.properties
        │   │   └── social.properties
        │   ├── local-no-ui
        │   │   ├── app.properties
        │   │   ├── db.properties
        │   │   └── port.properties
        │   ├── local-sit
        │   │   └── app.properties
        │   ├── local-ui
        │   │   ├── app.properties
        │   │   └── db.properties
        │   ├── sit
        │   │   ├── app.properties
        │   │   └── db.properties
        │   └── uat
        ...

      Предположим, что вы запускаете приложение на сервере UAT с параметром JVM -Dprofile=uat. ActFramework будет загружать конфигурации в следующем порядке:

      1. Читает все файлы .properties в директории /resources/conf/common.
      2. Читает все файлы .properties в директории /resources/conf/uat.

      Таким образом ActFramework использует конфигурационные параметры, определённые в профиле uat, чтобы перезаписать те же параметры, определённые в профиле common. Общие параметры, которые не были перезаписаны, остаются действительными.

  • Простая, но мощная поддержка баз данных

  • Невероятная автоматическая система тестирования, которой нет аналогов ни в одном другом MVC-фреймворке

  • Часто используемые инструменты

Пример кода

Простое приложение HelloWorld

package demo.helloworld;

import act.Act;
import act.Version;
import org.osgl.mvc.annotation.GetAction;

public class HelloWorldApp {

    @GetAction
    public String sayHelloTo(@DefaultValue("World") String who) {
        return "Hello " + who + "!";
    }

    public static void main(String[] args) throws Exception {
        Act.start();
    }

}

Узнайте больше о том, как создать HelloWorld в Eclipse с нуля, просмотрев это видео продолжительностью семь минут. Для пользователей, которым недоступна YouTube, доступен вариант на Tudou.

Полный RESTful сервис

package demo.rest;

import act.controller.Controller;
import act.db.morphia.MorphiaAdaptiveRecord;
import act.db.morphia.MorphiaDao;
import org.mongodb.morphia.annotations.Entity;
import org.osgl.mvc.annotation.*;

import java.util.Map;

import static act.controller.Controller.Util.notFoundIfNull;

@Entity("user")
public class User extends MorphiaAdaptiveRecord<User> {

    @UrlContext("user")
    public static class Service extends MorphiaDao<User> {

        @PostAction
        public User create(User user) {
            return save(user);
        }

        @GetAction
        public Iterable<User> list() {
            return findAll();
        }

        @GetAction("{id}")
        public User show(@DbBind("id") User user) {
            return user;
        }

        @PutAction("{id}")
        public User update(@DbBind("id") @NotNull User user, Map<String, Object> data) {
            user.mergeValues(data);
            return save(user);
        }

        @DeleteAction("{id}")
        public void delete(String id) {
            deleteById(id);
        }
    }

    public static void main(String[] args) throws Exception {
        Act.start();
    }

}

Узнайте больше о поддержке RESTful с помощью просмотра этого видео продолжительностью час. Для пользователей, которым недоступна YouTube, доступен вариант на Tudou.

Дополнительно, для лучшего понимания AdaptiveRecord, просмотрите это видео продолжительностью семь минут. Для пользователей, которым недоступна YouTube, доступен вариант на Tudou.

Контекст

Я люблю PlayFramework версии 1.x потому что он прост, ясен и экспрессивен. Он принёс нам совершенно новый опыт работы с Java-веб-разработкой. Однако я не полностью согласен с тем направлением, в котором развивается Play 2.X, и кажется, что я не единственный человек, обеспокоенный этим вопросом, как показывает этот открытый письмо разработчикам Play Framework. Я думал о запуске чего-то, что могло бы следовать пути, проложенному Play 1.x, что-то простое, ясное, выразительное и удобное для разработчиков Java (в частности). Около полутора лет спустя после этого я решил, что могу начать проект серьезно, а ещё через полтора года я довёл до относительно хорошей формы этот ACT-фреймворк.

Счастливого программирования!

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

ActFramework — это лаконичный, удобный и мощный Java MVC full-stack фреймворк. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/actframework-actframework.git
git@api.gitlife.ru:oschina-mirror/actframework-actframework.git
oschina-mirror
actframework-actframework
actframework-actframework
master