更新時(shí)間:2022-06-10 10:36:53 來源:動力節(jié)點(diǎn) 瀏覽2168次
SSM框架中常用注解有哪些?動力節(jié)點(diǎn)小編來告訴大家。

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

初級 202925

初級 203221

初級 202629

初級 203743