Nutz:Start

解读nutzbook

问题

为什么只能用jetty我想用tomcat,端口只能是8080,,我日

##模块类
每一个声明了入口函数的模块类都是一个子模块,可以在主模块上进行注册

##Ioc
Ioc目前的了解是将所需要的对象在合适的时候通过ioc获取,不许要去导入很多的包

##URL路径

  • 注解有继承关系,@At在类上声明会继承给子方法

web.xml配置

    <filter>
    <filter-name>nutz</filter-name>
    <filter-class>org.nutz.mvc.NutFilter</filter-class>
    <init-param>
        <param-name>modules</param-name>
        <param-value>com.mine.app.MainModule</param-value>
    </init-param>
    <init-param>
        <param-name>exclusions</param-name>
        <!-- *.XXX 忽略后缀 -->
        <!-- /XX/* 忽略前缀 -->
        <!-- /cc   忽略固定路径 -->
        <!-- 下面的例子忽略了html和ftl后缀, 忽略了/rs/和/druid/前缀,和忽略了固定路径/abc/notaction -->
        <param-value>*.html,*.ftl,/rs/*,/druid/*,/abc/notaction</param-value>
    </init-param>
</filter>

web.xml的welcome页面不仅可以通过声明welcome里面的html页面,也可以通过入口函数来标注,比如@At(“/index”),

  • filter-name声明了过滤器的名称
  • class待定
  • param说明了filter回去哪个module
  • param-value具体的适配模式

数据库建设

Setup

Dao dao = ioc.get(Dao.class);
Daos.createTablesInPackage(dao, "net.wendal.nutzbook", false);

声明了数据库从哪里去获取POJO,在主模块上标注setup(在主模块上标注的主要作用)

POJO

  • 一个普通的javabean,有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法
  • @Table声明成为一个数据库信息,@View的作用不是很清楚

UserModule

  • @Inject注入
  • @Filter路径过滤,可以重写,可以继承
  • 视图
  • 这个注解很有意思@Filters(@By(type=CheckSession.class, args={“me”, “/“})) // 检查当前Session是否带me这个属性