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

OSCHINA-MIRROR/nutz-nutzboot

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
overview.md 4.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 22.04.2025 19:47 4e6c9af

Введение в NutzBoot

Что такое Nutz Boot?

Сокращённо NB! Это решение на основе Nutz для микросервисов, которое предоставляет удобную базовую структуру для распределённых приложений.

Создание проекта Nutz Boot: [https://get.nutz.io NB-конструктор]

Цели Nutz Boot

  • Увеличить удобство использования Nutz на следующий уровень
  • По умолчанию конфигурация должна удовлетворять более 80% потребностей
  • По умолчанию зависимости должны удовлетворять более 80% сценариев

Некоторые термины

  • AppContext — глобальный контекст
  • Starter — автономный управляемый сервис

Глобальный контекст AppContext

Так как приложения, запускаемые Nutz Boot, не обязательно являются веб-приложениями, требуется независимый от веба контекст для хранения общих объектов, таких как контейнер IoC и конфигурационные данные.

Основные характеристики AppContext

  • Доступен везде
  • Хранит контейнер IoC
  • Хранит конфигурационные данные
  • Управляет жизненным циклом Starter
  • Тестируемый и заменяемый

Что такое Starter

"Одна служба": предварительно настроенная, с полными зависимостями, автономно управляемая.* Предварительно настроенная: по умолчанию значения должны быть достаточно хорошими, чтобы в большинстве случаев не требовалось их изменения.

  • Полные зависимости: в файле pom.xml достаточно добавить зависимость Starter, связанные jar-файлы должны быть полными, дополнительные зависимости не требуются.
  • Автономно управляемая: Starter должна иметь свой жизненный цикл.## Пример простейшего демонстрационного приложения
package io.nutz.demo.simple;

import org.nutz.boot.NbApp;
import org.nutz.ioc.loader.annotation.*;
import org.nutz.mvc.annotation.*;

@IocBean
public class MainLauncher {

    @Ok("raw")
    @At("/time/now")
    public long now() {
        return System.currentTimeMillis();
    }

    public static void main(String[] args) throws Exception {
        new NbApp(MainLauncher.class).run();
    }
}

Различия между Nutz.Mvc+Nutz.Dao и NutzBoot

  • Nutz.Mvc+Nutz.Dao — это наиболее часто используемое сочетание, обычно запускаемое в веб-контейнере, публикуется в виде war.
  • NutzBoot — это автономное приложение, не требующее дополнительного контейнера, оно само является контейнером, содержащим другие контейнеры, такие как jetty или tomcat, публикуется в виде jar.
  • Приложения NutzBoot не обязательно являются веб-приложениями, они могут быть серверами Dubbo, потребителями MQ и т.д., не имеющими пользовательского интерфейса.

Различия между Nutz.Mvc и другими Starter и моими собственными настройками

  • Более 95% кода совместимо. Например, большинство кода, написанного для Nutz.Mvc, может быть использовано.
  • Starter закрепляет лучшие практики, наша цель — удовлетворять более 80% потребностей по умолчанию, оставшиеся настройки могут быть настроены.

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/nutz-nutzboot.git
git@api.gitlife.ru:oschina-mirror/nutz-nutzboot.git
oschina-mirror
nutz-nutzboot
nutz-nutzboot
dev