更新時間:2022-06-10 10:36:53 來源:動力節(jié)點 瀏覽1733次
SSM框架中常用注解有哪些?動力節(jié)點小編來告訴大家。
@Controller:在SpringMVC 中,控制器Controller 負責處理由DispatcherServlet 分發(fā)的請求,它把用戶請求的數(shù)據(jù)經(jīng)過業(yè)務處理層處理之后封裝成一個Model ,然后再把該Model 返回給對應的View 進行展示。在SpringMVC 中提供了一個非常簡便的定義Controller 的方法,你無需繼承特定的類或實現(xiàn)特定的接口,只需使用@Controller 標記一個類是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注解用以定義URL 請求和Controller 方法之間的映射,這樣的Controller 就能被外界訪問到。此外Controller 不會直接依賴于HttpServletRequest 和HttpServletResponse 等HttpServlet 對象,它們可以通過Controller 的方法參數(shù)靈活的獲取到。
@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"):表示將功能處理方法將生產(chǎn)json格式的數(shù)據(jù),此時根據(jù)請求頭中的Accept進行匹配,如請求頭“Accept:application/json”時即可匹配;@RequestMapping(value = "/produces", produces = "application/xml"):表示將功能處理方法將生產(chǎn)xml格式的數(shù)據(jù),此時根據(jù)請求頭中的Accept進行匹配,如請求頭“Accept:application/xml”時即可匹配。此種方式相對使用@RequestMapping的“headers = "Accept=application/json"”更能表明你的目的。
@ResponseBody:該注解用于將Controller的方法返回的對象,通過適當?shù)腍ttpMessageConverter轉換為指定格式后,寫入到Response對象的body數(shù)據(jù)區(qū)。使用時機:返回的數(shù)據(jù)不是html標簽的頁面,而是其他某種格式的數(shù)據(jù)時(如json、xml等)使用;那么只需刪除注解:@ResponseBody 便可以返回頁面pay/success.jsp。而且達到了與客戶端后臺交互的效果。
@RequiresRoles:在controller控制器中的一個方法里面使用@RequireRoles("admin")注解,說明訪問該方法時,需要admin角色才能訪問。
@ApiOperation:@ApiOperation不是spring自帶的注解是swagger里的 com.wordnik.swagger.annotations.ApiOperation;@ApiOperation和@ApiParam為添加的API相關注解,個參數(shù)說明如下: @ApiOperation(value = “接口說明”, httpMethod = “接口請求方式”, response = “接口返回參數(shù)類型”, notes = “接口發(fā)布說明”;其他參數(shù)可參考源碼; @ApiParam(required = “是否必須參數(shù)”, name = “參數(shù)名稱”, value = “參數(shù)具體描述”
實際項目中非常需要寫文檔,提高Java服務端和Web前端以及移動端的對接效率。Swagger是當前最好用的Restful API文檔生成的開源項目,通swagger-spring項目實現(xiàn)了與SpingMVC框架的無縫集成功能,方便生成spring restful風格的接口文檔,同時swagger-ui還可以測試spring restful風格的接口功能。
@RestController:返回string或者json的話就直接用@RestController。如果想要頁面跳轉的話,就使用@Controller。一開始就有個疑問,就是我想在一個類中既能返回string或者json又能進行頁面跳轉怎么辦。在這篇文章中介紹的非常詳細,簡單說來@RestController = @Controller + @ResponseBody。所以,以后定義controller的時候,可以直接使用@Controller,如果需要返回json可以直接在方法中添加@ResponseBody即可。
@RequiresPermissions("system:*"):shiro中的注解
@SuppressWarnings("SpringJavaAutowiringInspection"):該批注的作用是給編譯器一條指令,告訴它對被批注的代碼元素內部的某些警告保持靜默。
@Deprecated:用 @Deprecated注釋的程序元素,不鼓勵程序員使用這樣的元素,通常是因為它很危險或存在更好的選擇。在使用不被贊成的程序元素或在不被贊成的代碼中執(zhí)行重寫時,編譯器會發(fā)出警告。
@Transient: 該注解,是Hibernate等框架的注解。 實體類中使用了@Table注解后,想要添加表中不存在字段,就要使用@Transient這個注解了。
@Table:@Entity注釋指名這是一個實體Bean,@Table注釋指定了Entity所要映射帶數(shù)據(jù)庫表,其中@Table.name()用來指定映射表的表名。如果缺省@Table注釋,系統(tǒng)默認采用類名作為映射表的表名。實體Bean的每個實例代表數(shù)據(jù)表中的一行數(shù)據(jù),行中的一列對應實例中的一個屬性。
@component (把普通pojo實例化到spring容器中,相當于配置文件中的<bean id="" class=""/>)