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