一、Nutz
是一組輕便小型的框架集合,可以極大程度上提高開發人員的生產力,更多內容請點擊訪問Nutz官網。Nutz主要包括以下幾個模塊:
- DAO:針對JDBC進行了薄封裝,事務模板,無緩存
- IoC:JSON風格配置文件,聲明時切片支持
- MVC:註解風格配置,內置文件上傳功能
- JSON:實現了對JSON的解析和渲染
- Castors:Java對象類型的轉換
- Lang:更簡潔的Java函數以及更豐富的反射支持
- AOP:輕便快速的切面編程支持
- Resource:資源掃描
二、Nutz使用:
1. 創建maven項目,導入Nutz
<dependency>
<groupId>org.nutz</groupId>
<artifactId>nutz</artifactId>
<version>1.r.68.v20190621</version>
</dependency>
2. 配置web.xml,將網絡請求交給Nutz處理
以下是在使用Nutz前的幾點說明:
- Nutz是以模塊爲概念的,類似於Spring中的每一個Controller就相當於Nutz中的模塊。
- 配置filter用於過濾請求,並最終把這些請求交給Nutz處理,這一點更加類似於配置struts時的filter,和SpringMVC中的DispatcherServlet較爲類似。
- 我們需要給Nutz指定主模塊,Nutz從主模塊開始掃描其他模塊。一般主模塊用來初始化項目,如果只是一個簡單的單一類,這時均採用Nutz的默認配置。如下:
package com.nutz;
public class Main {
}
- 我們可以利用@Modules註解說明需要加載的模塊,當然,我們也可以不指定,這樣Nutz會對同包和子包下的類進行自動掃描,加載成Nutz的模塊,這一點類似於SprigBoot的啓動類。
- 下面是web.xml中的具體配置。
<filter>
<filter-name>nutFilter</filter-name>
<filter-class>org.nutz.mvc.NutFilter</filter-class>
<init-param>
<!-- 在此處我們需要自定義Nutz的主模塊 -->
<param-name>modules</param-name>
<param-value>com.nutz.Main</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>nutFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3. 寫第一個模塊,包結構如下:
package com.nutz.controller;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
public class UserController {
@At("/user")
@Ok("jsp:jsp.hello")
public String user(){
return "這裏是用戶模塊";
}
}
註解說明:
- @At:指定url,類似於@RequestMapping
- @Ok:指定方法執行成功後,所返回的頁面,這裏我們返回的頁面是hello.jsp,內容如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<!-- 在這裏我們拿到方法的返回值 -->
<%=request.getAttribute("obj") %>
</body>
</html>
4. 因爲Nutz官方推薦使用Jetty,我們這裏需要配置Jetty,Jetty可以充當Servlet引擎和Http服務器,也就是我們常說的WEB容器,但是它比Tomcat更加輕量。關於Jetty的更多內容,之後會單獨再寫一篇博客。
- 下載Jetty解壓
- 更改Jetty的啓動配置(start.ini),否則我們無法在Idea中使用。我們需要加上
--modules=jmx
,如圖。
- 將jetty添加至Idea,如圖。
5.啓動項目,訪問/user
。
項目成功啓動後,控制檯會有如下信息。
我們對項目進行訪問,可以得到如下頁面。(Jetty默認端口爲8080)
三、說明
第一次學習Nutz,不得不說,Nutz框架較Spring輕便,但是Nutz框架和Spring還有一定的差距,因此,Nutz只適合一些小型項目,或者作爲原型開發框架進行使用。後面會逐步向大家介紹Nutz框架各模塊的使用方法。