@RequestMapping
這個(gè)注解可以用于類和方法上,用于類上,表示父路徑,如類上是demo,方法上是/demo1,那么訪問(wèn)路徑就是demo/demo1
該注解有六個(gè)屬性:
params:指定request中必須包含某些參數(shù)值是,才讓該方法處理。
headers:指定request中必須包含某些指定的header值,才能讓該方法處理請(qǐng)求。
value:指定請(qǐng)求的實(shí)際地址,指定的地址可以是URI Template 模式
method:指定請(qǐng)求的method類型, GET、POST、PUT、DELETE等
consumes:指定處理請(qǐng)求的提交內(nèi)容類型(Content-Type),如application/json,text/html;
produces:指定返回的內(nèi)容類型,僅當(dāng)request請(qǐng)求頭中的(Accept)類型中包含該指定類型才返回
@PathVariable
對(duì)應(yīng)路徑上的變量,用在參數(shù)前,路徑上的變量名需和參數(shù)名稱一致
RequestMapping("demo/demo1/{name}")
public String say(@PathVariable String name){
}
@RequestParam
和以下代碼的作用相同
String name =request.getParameter("name ")。
@RequestBody
是指方法參數(shù)被綁定到HTTP請(qǐng)求Body上,前端就不能用表單的方式提交了,需要用json的方式提交。
@RequestMapping(value = "/something", method = RequestMethod.PUT)
public void handle(@RequestBody String body,@RequestBody User user){
//可以綁定自定義的對(duì)象類型
}
@ResponseBody
表示輸出的是json格式的數(shù)據(jù)。
@ModelAttribute
1.運(yùn)用在參數(shù)上,會(huì)將客戶端傳遞過(guò)來(lái)的參數(shù)按名稱注入到指定對(duì)象中,并且會(huì)將這個(gè)對(duì)象自動(dòng)加入ModelMap中,便于View層使用;
2.運(yùn)用在方法上,會(huì)在每一個(gè)@RequestMapping標(biāo)注的方法前執(zhí)行,如果有返回值,則自動(dòng)將該返回值加入到ModelMap中;
@Bean
相當(dāng)于XML中的<bean></bean>,放在方法的上面,而不是類,意思是產(chǎn)生一個(gè)bean,并交給spring管理。
@Qualifier
當(dāng)有多個(gè)同一類型的Bean時(shí),可以用@Qualifier("name")來(lái)指定。與@Autowired配合使用
@Autowired
屬于Spring 的org.springframework.beans.factory.annotation包下,可用于為類的屬性、構(gòu)造器、方法進(jìn)行注值
@Resource
不屬于spring的注解,而是來(lái)自于JSR-250位于java.annotation包下,使用該annotation為目標(biāo)bean指定協(xié)作者Bean。
@Resource的作用相當(dāng)于@Autowired,均可標(biāo)注在字段或?qū)傩缘膕etter方法上。
注意:
@Autowired注解默認(rèn)按照類型裝配,如果容器中包含多個(gè)同一類型的Bean,那么啟動(dòng)容器時(shí)會(huì)報(bào)找不到指定類型bean的異常,解決辦法是結(jié)合@Qualified注解進(jìn)行限定,指定注入的bean名稱。
@Resource如果沒(méi)有指定name屬性,并且按照默認(rèn)的名稱仍然找不到依賴對(duì)象時(shí), @Resource注解會(huì)回退到按類型裝配。但一旦指定了name屬性,就只能按名稱裝配了。
@Autowired注解進(jìn)行裝配容易拋出異常,特別是裝配的bean類型有多個(gè)的時(shí)候,而解決的辦法是需要在增加@Qualitied進(jìn)行限定。
組件類注解
@Component :標(biāo)準(zhǔn)一個(gè)普通的spring Bean類。
@Repository:標(biāo)注一個(gè)DAO組件類。
@Service:標(biāo)注一個(gè)業(yè)務(wù)邏輯組件類。
@Controller:標(biāo)注一個(gè)控制器組件類。
@Component可以代替@Repository、@Service、@Controller,因?yàn)檫@三個(gè)注解是被@Component標(biāo)注的。被注解的java類當(dāng)做Bean實(shí)例,Bean實(shí)例的名稱默認(rèn)是Bean類的首字母小寫,其他部分不變。@Service也可以自定義Bean名稱,但是必須是唯一的!
@SpringBootApplication包含@Configuration、@EnableAutoConfiguration、@ComponentScan
br/>包含@Configuration、@EnableAutoConfiguration、@ComponentScan
@ComponentScan
組件掃描。如果掃描到有@Component @Controller @Service等這些注解的類,則把這些類注冊(cè)為bean。
@Configuration
指出該類是 Bean 配置的信息源,相當(dāng)于XML中的<beans></beans>,一般加在主類上。
@EnableAutoConfiguration
讓 Spring Boot 根據(jù)應(yīng)用所聲明的依賴來(lái)對(duì) Spring 框架進(jìn)行自動(dòng)配置,一般加在主類上。
@Profiles
Spring Profiles提供了一種隔離應(yīng)用程序配置的方式,并讓這些配置只能在特定的環(huán)境下生效。
任何@Component或@Configuration都能被@Profile標(biāo)記,從而限制加載它的時(shí)機(jī)。
@Configuration@Profile("prod")
br/>@Profile("prod")
// ...
}
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
文章題目:spring和springboot常用注解總結(jié)-創(chuàng)新互聯(lián)
轉(zhuǎn)載來(lái)源:http://aaarwkj.com/article42/ccjoec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷、網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司、外貿(mào)建站、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容