日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

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

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

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

我們的目的是:

讓MVC回歸其最初的目的。

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

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

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

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

我們的目的不是:

各種標(biāo)準(zhǔn),各種用法,20+ Annotations, 超強擴(kuò)展.... SpringMVC做的足夠了。

Multipart, 上傳這樣的需求應(yīng)該是單獨的、通用的,而不是和業(yè)務(wù)混在一起,郵箱用過吧...

驗證,簡單的非空驗證遠(yuǎn)遠(yuǎn)不能滿足實際需要,復(fù)雜的驗證框架做不到。驗證應(yīng)該交給業(yè)務(wù)邏輯來做,而不是框架。

Getting Started

在此之前,請準(zhǔn)備好:

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 //這個標(biāo)注表示這個類可以響應(yīng)HTTP請求,URL前綴為/user_service

public class UserService {

/**

* 連同類對應(yīng)的URL,訪問這個方法的URL為/user_service/create

*/

@API

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

return null;

}

}

手冊

URL映射規(guī)則

類用`@Domain`標(biāo)注,方法用`@API`標(biāo)注,只有這樣,方法才能響應(yīng)一個URL。

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

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

@Param

public class EmployeeJoinService{}

被@API標(biāo)注的函數(shù),對應(yīng)的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參數(shù)用于覆蓋缺省的URL規(guī)則:

@Domain("/emp")

public class EmployeeJoinService{

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

@API("join")

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

}

}

輸入?yún)?shù)轉(zhuǎn)換

能夠自動從HTTP參數(shù)轉(zhuǎn)換成各種常用的Java數(shù)據(jù)類型:

Primitive類型及其Wrapper

String

BigDecimal

BigInteger

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

普通Java Bean

由上述數(shù)據(jù)類型組成的數(shù)組。

java.util.List,java.util.Set,必須參數(shù)化

用@Param標(biāo)注參數(shù),可以自定義轉(zhuǎn)換規(guī)則。

//MyConverterz實現(xiàn)了ValueConverter接口

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

方法參數(shù)與請求參數(shù)對應(yīng)關(guān)系

如果方法參數(shù)只有一個,并且是一個JavaBean,那么JavaBean的屬性名稱與parameter名稱一一對應(yīng)。

如果方法有多個參數(shù),則需要用@Param指出參數(shù)名稱和parameter名稱的對應(yīng)關(guān)系。

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

例如:

@Domain

public class UserService {

/**

* 對應(yīng)的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){

}

}

解析響應(yīng)

####缺省的解析規(guī)則(根據(jù)URL擴(kuò)展名)

URL沒有擴(kuò)展名或者擴(kuò)展名為.json,直接輸出JSON格式的數(shù)據(jù)。

URL擴(kuò)展名為.text,.txt, 則直接將方法執(zhí)行的結(jié)果轉(zhuǎn)換為字符串,渲染到HttpServletResponse中。

URL擴(kuò)展名為.html,.htm,.do,.action:

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

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

例如:URL為/user_service/create.htm,對應(yīng)的模板文件為/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數(shù)據(jù):渲染一個JSON,包括異常說明(message),異常標(biāo)記(isFailed)等, 例如:

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

請求html數(shù)據(jù),以errorMessage為Attribute Name保存在Request中。

后臺不會打印異常棧。

不可讀異常,通常是系統(tǒng)錯誤造成,使用RuntimeException拋出

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

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

####自定義解析規(guī)則

@API參數(shù)reolver指向一個ResponseResolver的實現(xiàn)類,即可實現(xiàn)自定義解析方式:

@API(resolver = MyResolver.class)

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

}

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。