日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 男人看片网站 | 欧美呦呦 | 国产小毛片 | 午夜电影网站 | 亚洲av日韩av不卡在线观看 | 日本黄色一区二区三区 | 日本欧美在线视频 | 黑人一级女人全片 | 教练含着她的乳奶揉搓揉捏动态图 | 国产精品久久久久久久久夜色 | 超碰超碰在线 | 日韩精品tv | 一级毛毛片| 在线观看视频日韩 | 免费av不卡在线观看 | 波多野结衣一区二区三区在线 | 国产娇小hdxxxx乱 | 天堂网av2018 | 青青青草视频在线 | www.香蕉网| 中文在线免费 | 九色免费视频 | 国产精品无码999 | 综合色吧 | 国产小视频自拍 | 少妇天天干 | 黄色片a| 领导揉我胸亲奶揉下面 | 不卡的av在线免费观看 | 在线日韩成人 | 三点尽露的大尺度国产 | 日日夜精品 | 亚洲综合伊人 | 欧美亚洲综合另类 | 日本大片黄 | 香港三级日本三级三69 | 亚洲欧洲色 | 欧美午夜精品 | 久久久国产精品免费 | 深夜啪啪| 美女黄页在线观看 | 男女男精品视频站 | 天天撸在线视频 | 欧美aⅴ视频 | 日毛片 | 一本之道av | 亚洲色图图片区 | 免费不卡av | 欧美成欧美va | 国语对白做受xxxxx在线中国 | 求免费黄色网址 | 天天草影院 | 午夜性视频| 免费看黄色小视频 | 中文毛片| 久久国产精品精品国产 | 亚洲91av| 亚洲午夜激情视频 | 中国一级特黄视频 | 亚洲国产成人精品女人久久 | 国产精品一区久久 | 欧美精品hd | 成人免费观看视频 | 久久成人综合网 | 国语对白91| 欧美日韩tv| 中文字幕日产乱码中 | 国产精品久久久久久免费免熟 | 六月丁香婷婷综合 | 成人做爰9片免费视频 | 在线视频一区二区三区四区 | 饥渴的少妇和男按摩师 | 噜噜噜精品欧美成人 | 亚洲图片欧美 | 今天最新中文字幕mv高清 | 日韩精品久久久久久久的张开腿让 | 成人影片在线免费观看 | 激情五月俺也去 | 中文字幕无码av波多野吉衣 | 国产高清视频免费在线观看 | 日韩一区在线观看视频 | 久草免费在线观看视频 | 亚洲色图14p | 一区二区在线观看av | 国产1页 | 激情综合五月婷婷 | 亚洲不卡免费视频 | 很很干很很日 | 婷婷国产视频 | 韩国伦理电影免费在线 | 亚洲欧美另类一区 | 中文字幕线人 | 日韩av大片| 欧美精品黑人 | 国产调教打屁股xxxx网站 | 日韩一二三四区 | 99热激情 | 欧美丰满一区二区免费视频 | 91免费视频网址 |