日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

JAVA5000行代码什么概念_GitHub - catstiger/mvc: 一个不超过5000行代码的,快速,简单,易用的MVC框架。...

發布時間:2025/3/15 82 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA5000行代码什么概念_GitHub - catstiger/mvc: 一个不超过5000行代码的,快速,简单,易用的MVC框架。... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一個不超過5000行代碼的,快速,簡單,易用的MVC框架。

我們的目的是:

讓MVC回歸其最初的目的。

因簡單而快速,超過目前各種主流MVC。

零侵入,零配置,易于測試,并且讓開發者感覺不到MVC的存在

可以單獨使用,也可以和Spring整合使用。

飛快的json解析,也支持jsp和freemarker(推薦)。

我們的目的不是:

各種標準,各種用法,20+ Annotations, 超強擴展.... SpringMVC做的足夠了。

Multipart, 上傳這樣的需求應該是單獨的、通用的,而不是和業務混在一起,郵箱用過吧...

驗證,簡單的非空驗證遠遠不能滿足實際需要,復雜的驗證框架做不到。驗證應該交給業務邏輯來做,而不是框架。

Getting Started

在此之前,請準備好:

Java JDK 8

Maven3

1.在您的POM中加入一個repository:

Honqun Nexus 3dp

Honqun Repository

http://115.28.55.60:8081/nexus/content/repositories/thirdparty/

true

2.POM中加入依賴

com.github.catstiger

catstiger-mvc

0.1

3.配置web.xml,加入MvcFilter:

MvcFilter

com.github.catstiger.mvc.MvcFilter

basePackage

org.honqun

MvcFilter

/*

4.寫一個Service,哦,Controller,隨便吧

@Domain //這個標注表示這個類可以響應HTTP請求,URL前綴為/user_service

public class UserService {

/**

* 連同類對應的URL,訪問這個方法的URL為/user_service/create

*/

@API

public User create(@Param("id") Long id, @Param("name") String name) {

return null;

}

}

手冊

URL映射規則

類用`@Domain`標注,方法用`@API`標注,只有這樣,方法才能響應一個URL。

被@Domain的類對應的URL為類名(駝峰命名)小寫,單詞之間用_分隔,例如:

//這個類的URL前綴為/employee_join_service

@Param

public class EmployeeJoinService{}

被@API標注的函數,對應的URL為:類名URL + / + 方法URL,方法URL為方法名小寫單詞之間用_分隔。例如:

@Domain

public class EmployeeJoinService{

//訪問這個方法的URL為/employee_join_service/join_on

@API

public Employee joinOn(@Param("emp") Employee emp) {

}

}

@Domain和@API都可以自定義URL,他們的value參數用于覆蓋缺省的URL規則:

@Domain("/emp")

public class EmployeeJoinService{

//訪問這個方法的URL為/emp/join

@API("join")

public Employee joinOn(@Param("emp") Employee emp) {

}

}

輸入參數轉換

能夠自動從HTTP參數轉換成各種常用的Java數據類型:

Primitive類型及其Wrapper

String

BigDecimal

BigInteger

java.util.Date,java.sql.Date,格式可以在web.xml中配置用inti-param配置(dateFormat)

普通Java Bean

由上述數據類型組成的數組。

java.util.List,java.util.Set,必須參數化

用@Param標注參數,可以自定義轉換規則。

//MyConverterz實現了ValueConverter接口

public User queryByDate(@Param(value= "date", converter = MyConverter.class) Date date){}

方法參數與請求參數對應關系

如果方法參數只有一個,并且是一個JavaBean,那么JavaBean的屬性名稱與parameter名稱一一對應。

如果方法有多個參數,則需要用@Param指出參數名稱和parameter名稱的對應關系。

如果方法參數是一個JavaBean,而parameter需要與JavaBeann中的某個Beand的屬性對應,則可以使用.分隔參數名稱。例如:?user.dept.id=1,對應的是User對象的dept屬性的id屬性。

例如:

@Domain

public class UserService {

/**

* 對應的URL:/user_service/query_user?id=0&username=a&dept.name=tech

*/

@API

public List queryUser(@Param("id") Long id, @Param("username") String username, @Param("dept") Dept dept){

}

}

解析響應

####缺省的解析規則(根據URL擴展名)

URL沒有擴展名或者擴展名為.json,直接輸出JSON格式的數據。

URL擴展名為.text,.txt, 則直接將方法執行的結果轉換為字符串,渲染到HttpServletResponse中。

URL擴展名為.html,.htm,.do,.action:

/WEB-INF/views/下,對應URL的目錄中如果有ftl文件,則解析freemarker,并渲染到HttpServletResponse中。

如果沒有ftl文件,重定向d(forward)到/WEB-INF/views/下對應的jsp文件。

例如:URL為/user_service/create.htm,對應的模板文件為/WEB-INF/views/user_service/create.ftl或者create.jsp

可以在web.xml中配置模板文件的目錄:

MvcFilter

com.github.catstiger.mvc.MvcFilter

pageFolder

/WEB-INF/ftl

####異常處理

可讀異常,通常用于處理用戶輸入錯誤等,使用com.github.catstiger.mvc.exception.ReadableException拋出。

請求json數據:渲染一個JSON,包括異常說明(message),異常標記(isFailed)等, 例如:

{"errorCode":"-1","failed":true,"msg":"可讀異常!"}

請求html數據,以errorMessage為Attribute Name保存在Request中。

后臺不會打印異常棧。

不可讀異常,通常是系統錯誤造成,使用RuntimeException拋出

直接返回505錯誤,異常對象以"javax.servlet.error.exception"保存。

后臺記錄日志,并打印異常棧。

####自定義解析規則

@API參數reolver指向一個ResponseResolver的實現類,即可實現自定義解析方式:

@API(resolver = MyResolver.class)

public User createUser(@Param("user") User model) {

}

總結

以上是生活随笔為你收集整理的JAVA5000行代码什么概念_GitHub - catstiger/mvc: 一个不超过5000行代码的,快速,简单,易用的MVC框架。...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。