codecamp
NutzBoot简介

什么是Nutz Boot?

简称NB! 基于Nutz的微服务方案

进一步简化Nutz项目的配置复杂度,将最佳实践模块化

可以理解为 nutz(核心)+nutzmore(插件集)+nutz-web(jetty启动器)的重新组合并优化

一键生成NB的项目: NB构建器

NutzBoot的目标

  • 将nutz易用性再提升个一个层次
  • 默认配置应满足80%以上的需求
  • 默认依赖应满足80%以上的场景

几个术语

  • AppContext 全局上下文
  • Starter,一个自管理的服务全局上下文AppContext由于nutzboot启动的程序不一定是web程序,所以需要非web上下文,用于存储公用对象,例如ioc容器和配置信息AppContext具有的基本特征随处可取持有一个Ioc容器持有配置信息管理starter的生命周期可测试,可替换

何为starter

"一种服务": 预配置,依赖关系完整,自我管理.

  • 预配置: 默认值应足够好,在大部分情况下不需要修改
  • 依赖关系完整: pom.xml只需要加上starter的依赖,相关jar应该完整,不需要再额外添加
  • 自我管理: starter应该有自己的生命周期

差不多是最简单的demo

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();
    }
}

NutzBoot与Nutz.Mvc+Nutz.Dao的区别

  • Nutz.Mvc+Nutz.Dao是大家常用的组合, 通常跑在web容器内,发布为war
  • NutzBoot是独立的程序,不需要额外的容器,它自身就是一个容器, 然后包含其他容器,例如jetty或tomcat, 发布为jar
  • NutzBoot的程序不一定是web程序,可以是dubbo服务端,mq消费者等无UI程序

Nutz.Mvc及其他starter跟我自己配有什么区别?

  • 95%以上的代码互通. 例如在Nutz.Mvc的写法,绝大部分可用
  • starter固化了最佳实践,我们的目标是满足80%以上的默认需求,剩余的可配置


NutDao的缓存插件
NutzBoot快速入门
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

表达式引擎

maplist结构

图像处理小军刀

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }