SSM框架中常用的注解


  @Service  :通常作用在業務層,但是目前該功能與 @Component 相同。

   @Repository 持久層 該注解的作用不只是將類識別為Bean,同時它還能將所標注的類中拋出的數據訪問異常封裝為 Spring 的數據訪問異常類型。 Spring本身提供了一個豐富的並且是與具體的數據訪問技術無關的數據訪問異常結構,用於封裝不同的持久層框架拋出的異常,使得異常獨立於底層的框架。

  @Controller:在SpringMVC 中,控制器Controller 負責處理由DispatcherServlet 分發的請求,它把用戶請求的數據經過業務處理層處理之后封裝成一個Model ,然后再把該Model 返回給對應的View 進行展示。在SpringMVC 中提供了一個非常簡便的定義Controller 的方法,你無需繼承特定的類或實現特定的接口,只需使用@Controller 標記一個類是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注解用以定義URL 請求和Controller 方法之間的映射,這樣的Controller 就能被外界訪問到。此外Controller 不會直接依賴於HttpServletRequest 和HttpServletResponse 等HttpServlet 對象,它們可以通過Controller 的方法參數靈活的獲取到。

  @GetMapping:Spring4.3中引進了{@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping},來幫助簡化常用的HTTP方法的映射,並更好地表達被注解方法的語義。以@GetMapping為例,Spring官方文檔說:@GetMapping是一個組合@RequestMapping(method = RequestMethod.GET)的縮寫。該注解將HTTP Get 映射到 特定的處理方法上。

  produces = "application/json":@RequestMapping(value = "/produces", produces = "application/json"):表示將功能處理方法將生產json格式的數據,此時根據請求頭中的Accept進行匹配,如請求頭“Accept:application/json”時即可匹配;@RequestMapping(value = "/produces", produces = "application/xml"):表示將功能處理方法將生產xml格式的數據,此時根據請求頭中的Accept進行匹配,如請求頭“Accept:application/xml”時即可匹配。此種方式相對使用@RequestMapping的“headers = "Accept=application/json"”更能表明你的目的。

  @ResponseBody:該注解用於將Controller的方法返回的對象,通過適當的HttpMessageConverter轉換為指定格式后,寫入到Response對象的body數據區。使用時機:返回的數據不是html標簽的頁面,而是其他某種格式的數據時(如json、xml等)使用;那么只需刪除注解:@ResponseBody 便可以返回頁面pay/success.jsp。而且達到了與客戶端后台交互的效果。

  @RestController:返回string或者json的話就直接用@RestController。如果想要頁面跳轉的話,就使用@Controller。一開始就有個疑問,就是我想在一個類中既能返回string或者json又能進行頁面跳轉怎么辦。簡單說來@RestController = @Controller + @ResponseBody。所以,以后定義controller的時候,可以直接使用@Controller,如果需要返回json可以直接在方法中添加@ResponseBody即可。

  @Transient: 該注解,是Hibernate等框架的注解。 實體類中使用了@Table注解后,想要添加表中不存在字段,就要使用@Transient這個注解了。

  @Table:@Entity注釋指名這是一個實體Bean,@Table注釋指定了Entity所要映射帶數據庫表,其中@Table.name()用來指定映射表的表名。如果缺省@Table注釋,系統默認采用類名作為映射表的表名。實體Bean的每個實例代表數據表中的一行數據,行中的一列對應實例中的一個屬性。

  @component (把普通pojo實例化到spring容器中,相當於配置文件中的<bean id="" class=""/>)

  @Autowired:采用類型的方式完成自動裝配

 

  @Resource:采用名稱+類型的方式完成自動裝配(比較保險)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM