1. 程式人生 > >IDEA環境下SSM整合------註解開發

IDEA環境下SSM整合------註解開發

        根據前一篇文章的步驟,目前專案進度應該是:核心過濾器配置完成、DispatcherServlet和ContextLoader配置完成、資料庫dataSource配置完成、檢視解析器配置完成、Mapper sql和dao method對應沒有問題、註解驅動、事務啟動、default-Servlet-handler配置完成

------------這篇文章主要介紹,業務邏輯和資料流程-----------------

核心流程:

使用者請求(url)—>配置中DispatcherServlet攔截請求----->通過內部配置HandlerMapping檢查URL對應的Controller---->controller返回字串或者Modealandview------>ViewResolver檢視解析器解析物理檢視地址------>控制權交DispatcherServlet------->返回物件資料給伺服器---------->客戶端

------------------------註解詳解放最後了--------------------------------

1.直接粘個Service的增刪改

image

2.Controller

image

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發生的異常