IDEA環境下SSM整合------註解開發
根據前一篇文章的步驟,目前專案進度應該是:核心過濾器配置完成、DispatcherServlet和ContextLoader配置完成、資料庫dataSource配置完成、檢視解析器配置完成、Mapper sql和dao method對應沒有問題、註解驅動、事務啟動、default-Servlet-handler配置完成。
------------這篇文章主要介紹,業務邏輯和資料流程-----------------
核心流程:
使用者請求(url)—>配置中DispatcherServlet攔截請求----->通過內部配置HandlerMapping檢查URL對應的Controller---->controller返回字串或者Modealandview------>ViewResolver檢視解析器解析物理檢視地址------>控制權交DispatcherServlet------->返回物件資料給伺服器---------->客戶端
------------------------註解詳解放最後了--------------------------------
1.直接粘個Service的增刪改
2.Controller
3.別的好像沒啥介紹了,基本步驟就這些,資料流程在上面,註解介紹在下面。
基本註解介紹
@Controller
負責註冊一個控制器,Singleton,執行緒共享
@Service 標註在Service類
@Repository 標註在Dao類
@Component 當不清楚類的具體功能,只是想把這個元件加到spring容器 中,用此註解
@AutoWired 自動裝配註解
@RequestMapping(value=”/url” , method = RequestMethod.POST)
註解為控制器指定URL 請求,可以標註方法也可以標註在控制類上,
請求格式:/類路徑/方法路徑 或 /方法路徑@RequestBody
該註解用於讀取Request請求的body部分資料,使用系統預設配置的HttpMessageConverter進行解析,然後把相應的資料繫結到要返回的物件上 ,再把HttpMessageConverter返回的物件資料繫結到 controller中方法的引數上
A) GET、POST方式提時, 根據request header Content-Type的值來判斷:
- application/x-www-form-urlencoded, 可選(即非必須,因為這種情況的資料@RequestParam, @ModelAttribute也可以處理,當然@RequestBody也能處理);
- multipart/form-data, 不能處理(即使用@RequestBody不能處理這種格式的資料);
- 其他格式, 必須(其他格式包括application/json, application/xml等。這些格式的資料,必須使用@RequestBody來處理);
B) PUT方式提交時, 根據request header Content-Type的值來判斷:
- application/x-www-form-urlencoded, 必須;
- multipart/form-data, 不能處理;
- 其他格式, 必須;
@ResponseBody
該註解用於將Controller的方法返回的物件,通過適當的HttpMessageConverter轉換為指定格式後,寫入到Response物件的body資料區
返回的資料不是html標籤的頁面,而是其他某種格式的資料時(如json、xml等)使用;
@SessionAttributes(value={“user”},type={String.class})
value:通過名稱存放在session
type:會將某一型別的物件傳入
由於該註解會自動裝配,所以使用inlivate()清空
使用SessionStatus.SetComplete();方法清空session
該註解用來繫結HttpSession中的attribute物件的值,便於在方法中的引數裡使用。只能標註在類上,不能標註方法;
@ModelAttribute
在方法定義上使用 @ModelAttribute 註解:Spring MVC 在呼叫目標處理方法前,會先逐個呼叫在方法級上標註了@ModelAttribute 的方法
在方法的入參前使用 @ModelAttribute 註解:可以從隱含物件中獲取隱含的模型資料中獲取物件,再將請求引數 –繫結到物件中,再傳入入參將方法入參物件新增到模型中
@RequestParam
在處理方法入參處使用 @RequestParam 可以把請求參 數傳遞給請求方法
(@PathVariable(“id”) Int id)
繫結 URL 佔位符到入參(“/url/{id}”)@ExceptionHandler
註解到方法上,出現異常時會執行該方法@ControllerAdvice
使一個Contoller成為全域性的異常處理類,類中用@ExceptionHandler方法註解的方法可以處理所有Controller發生的異常