一、什么是Nutz ?
Nutz是对于Java程序员来说,除SSH之外的另一个选择。当然,它是开源的,并且是完全免费的。同时也是商业友好的
二、其优点?
轻 -- 当前最新版,整个jar文件共910kB -- 针对JDBC的薄封装,无缓存。
全 -- 提供了Dao(ORM, SQL管理),Ioc, Aop, Mvc, Json解析等必要功能。
活 -- 各个部分可以独立使用,比如在Spring里采用Nutz.Dao,又比如在Nutz.Ioc里使用Hibernate等。
整 -- 它所有功能均不依赖第三方jar文件。这就意味着:如果一个Web应用,你在WEB-INF/lib下只需要放置一个nutz.jar就够了。当然,你要使用其它的连接池、数据库驱动、打印PDF支持等功能,还需要自行添置jar包。
三、Nutz如何实现mvc分层?
Controller:
nutz里有一个Module的概念。
类名一xxxModule结尾的类名就定义它是一个模块类这个类和Struts的action概念相同,只负责接收请求,调用相关处理业务,返回响应的视图。
一个标准module的处理函数:
只是负责调用该module对应的service处理业务,并指定返回的视图类型以及对应的路径。
View:
nutz给视图的定义:将入口函数的返回值(一个Java对象)渲染到 HTTP 响应流中。
nutz认为:一种视图就是一种将 Java 对象写入 HTTP 响应流的方式。
视图的类型大致有: JSP - 采用 JSP 模板输出网页
Redirect - 客户端重定向
Forward - 服务器端中转
Json - 将对象输出成 Json 字符串
void - 什么都不做
具体的实现过程可以参考nutz的文档。
nutz帮助我们实现了视图层的处理,
这样我们就不用再去关心如何将数据渲染到视图上啦,这就实现了视图和业务分离的目的。
Model:
模型层的核心是提供具体算法完成请求,比如:业务逻辑的算法,数据持久的算法。
我认为这一层主要是由使用框架者根据实际业务以及业务的需求来实现的,
框架做的事情就是为我们在实现业务的过程中消除重复让我更加专注业务,
比如:为我们提供Ioc容器帮助我们管理Bean的生命周期,
为我们提供数据库持久的基本操作接口,帮住我们减少在数据持久层的关注。
四、常用注解?
Nutz 可以做什么?
Dao -- 针对 JDBC 的薄封装,事务模板,无缓存
Ioc -- JSON 风格的配置文件,声明时切片支持
Mvc -- 注解风格的配置,内置多文件上传功能
Json -- 解析和渲染
Castors -- Java 对象类型转换
Lang -- 更简洁的 Java 函数以及更丰富的反射支持
Aop -- 轻便快速的切面编程支持
Resource -- 资源扫描