在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Springboot常用注解合集

jf_78858299 ? 來(lái)源:java架構(gòu)學(xué)習(xí)專欄 ? 作者:java架構(gòu)學(xué)習(xí)專欄 ? 2023-04-07 14:27 ? 次閱讀

常用注解

@SpringBootApplication

前幾章,在系統(tǒng)啟動(dòng)類里面,都加入了此啟動(dòng)注解,此注解是個(gè)組合注解,包括了@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan注解。

  • @SpringBootConfiguration 繼承至@Configuration,對(duì)于熟悉spring開發(fā)者而言,此標(biāo)注當(dāng)前類是配置類,并會(huì)將當(dāng)前類內(nèi)聲明的一個(gè)或多個(gè)以@Bean注解標(biāo)記的方法的實(shí)例納入到srping容器中,并且實(shí)例名就是方法名。
  • @EnableAutoConfiguration 這個(gè)注解就是springboot能自動(dòng)進(jìn)行配置的魔法所在了。主要是通過此注解,能所有符合自動(dòng)配置條件的bean的定義加載到spring容器中,比如根據(jù)spring-boot-starter-web ,來(lái)判斷你的項(xiàng)目是否需要添加了webmvctomcat,就會(huì)自動(dòng)的幫你配置web項(xiàng)目中所需要的默認(rèn)配置。具體的使用,會(huì)在后期自定義實(shí)現(xiàn)一個(gè)自動(dòng)啟動(dòng)類時(shí),會(huì)講解到它的一些機(jī)制。此章節(jié)就不深入了,只需要它是這個(gè)用途即可,一般上也單獨(dú)使用不要這個(gè)注解,但比如需要排除一些無(wú)需自動(dòng)配置的類時(shí),可利用exclude進(jìn)行排除。
  • @ComponentScan 這個(gè)熟悉spring的開發(fā)者也應(yīng)該熟悉,會(huì)掃描當(dāng)前包及其子包下被@Component,@Controller,@Service,@Repository等注解標(biāo)記的類并納入到spring容器中進(jìn)行管理。

@Controller 和 @RestController

@RestController 是Spring4之后加入的注解,原來(lái)在@Controller中返回json需要@ResponseBody來(lái)配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默認(rèn)返回json格式。而@Controller是用來(lái)創(chuàng)建處理http請(qǐng)求的對(duì)象,一般結(jié)合@RequestMapping使用。

@RequestMapping

一個(gè)用來(lái)處理請(qǐng)求地址映射的注解,可用于類或方法上。用于類上,表示類中的所有響應(yīng)請(qǐng)求的方法都是以該地址作為父路徑。

常用屬性(摘抄至網(wǎng)絡(luò)):

  • value, method;

    value: 指定請(qǐng)求的實(shí)際地址,指定的地址可以是URI Template 模式(后面將會(huì)說(shuō)明);

    method: 指定請(qǐng)求的method類型, GET、POST、PUT、DELETE等;

  • consumes,produces;

    consumes: 指定處理請(qǐng)求的提交內(nèi)容類型(Content-Type),例如application/json, text/html;

    produces: 指定返回的內(nèi)容類型,僅當(dāng)request請(qǐng)求頭中的(Accept)類型中包含該指定類型才返回;

  • params,headers

    params: 指定request中必須包含某些參數(shù)值是,才讓該方法處理。

    headers: 指定request中必須包含某些指定的header值,才能讓該方法處理請(qǐng)求。

常用的基本上就valuemethod了。 其簡(jiǎn)化注解有

@GetMapping 等同于 @RequestMapping(method = RequestMethod.GET)

@PostMapping 等同于 @RequestMapping(method = RequestMethod.POST)

@PutMapping 等同于 @RequestMapping(method = RequestMethod.PUT)

@DeleteMapping 等同于 @RequestMapping(method = RequestMethod.DELETE)

@PatchMapping 等同于 @RequestMapping(method = RequestMethod.PATCH)

@RequestBody和@ResponseBody

  • @RequestBody注解允許request的參數(shù)在reqeust體中,常常結(jié)合前端POST請(qǐng)求,進(jìn)行前后端交互。
  • @ResponseBody注解支持將的參數(shù)在reqeust體中,通常返回json格式給前端。

@PathVariable、@RequestParam、@RequestAttribute

  • @PathVariable用來(lái)接收參數(shù),如/path/001,可接收001作為參數(shù)

圖片

  • @RequestParam 用來(lái)接收URL中的參數(shù),如/param?id=001,可接收001作為參數(shù)

圖片

  • @RequestAttribute用于訪問由過濾器或攔截器創(chuàng)建的、預(yù)先存在的請(qǐng)求屬性,效果等同與request.getAttrbute().

圖片

@Component、@Service、@Repository

這三者都是申明一個(gè)單例的bean類并納入spring容器中,后兩者其實(shí)都是繼承于@Component

  • @Component 最普通的組件,可以被注入到spring容器進(jìn)行管理
  • @Repository 作用于持久層
  • @Service 作用于業(yè)務(wù)邏輯層

通常一些類無(wú)法確定是使用@Service還是@Component時(shí),注解使用@Component,比如redis的配置類等

@ModelAttribute

主要是綁定請(qǐng)求參數(shù)到指定對(duì)象上。此注解可被用于方法、參數(shù)上。

  • 運(yùn)用在參數(shù)上,會(huì)將客戶端傳遞過來(lái)的參數(shù)按名稱注入到指定對(duì)象中,并且會(huì)將這個(gè)對(duì)象自動(dòng)加入ModelMap中,便于View層使用;
  • 運(yùn)用在方法上,會(huì)在每一個(gè)@RequestMapping 標(biāo)注的方法前執(zhí)行 ,如果有返回值,則自動(dòng)將該返回值加入到ModelMap中;

由于現(xiàn)在都采用前后端分離開發(fā),故此注解相對(duì)用的較少了,但對(duì)于一些在每次請(qǐng)求前需要進(jìn)行一些額外操作時(shí)。使用此注解依然是個(gè)選擇,比如進(jìn)行統(tǒng)一的業(yè)務(wù)校驗(yàn)等,但使用此注解實(shí)現(xiàn)類似功能時(shí)需要注意,使用異步調(diào)用時(shí),比如callable或者DeferredResult時(shí),被此注解的方法會(huì)執(zhí)行兩次,因?yàn)楫惒秸?qǐng)求時(shí),是掛起另一個(gè)線程去重新執(zhí)行,對(duì)于配置了攔截器而已,它們的執(zhí)行順序?yàn)?/strong>

攔截器的相關(guān)知識(shí)點(diǎn)會(huì)在下章進(jìn)行說(shuō)明,這里只是特殊說(shuō)明下。解決方案的話可簡(jiǎn)單根據(jù)DispatcherType類型進(jìn)行判斷,異步時(shí)對(duì)應(yīng)類型為:ASYNC,第一次請(qǐng)求正常為:REQUEST。

@Qualifier:當(dāng)有多個(gè)同一類型的Bean時(shí),可以用@Qualifier(“name”)來(lái)指定。與@Autowired配合使用。@Qualifier限定描述符除了能根據(jù)名字進(jìn)行注入,但能進(jìn)行更細(xì)粒度的控制如何選擇候選者,具體使用方式如下:

@Autowired 
@Qualifier(value = “demoInfoService”) 
private DemoInfoService demoInfoService;

@Resource(name=”name”,type=”type”):沒有括號(hào)內(nèi)內(nèi)容的話,默認(rèn)byName。與@Autowired干類似的事。

@Api @ApiOperation @ApiParam

@Api @ApiOperation @ApiParam主要是用于swagger提供開發(fā)者文檔,文檔中生成的注釋內(nèi)容

圖片

JPA注解

@Entity:@Table(name=”“):表明這是一個(gè)實(shí)體類。一般用于jpa這兩個(gè)注解一般一塊使用,但是如果表名和實(shí)體類名相同的話,@Table可以省略

@MappedSuperClass:用在確定是父類的entity上。父類的屬性子類可以繼承。

@NoRepositoryBean:一般用作父類的repository,有這個(gè)注解,spring不會(huì)去實(shí)例化該repository。

@Column:如果字段名與列名相同,則可以省略。

@Id:表示該屬性為主鍵。

@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = “repair_seq”):表示主鍵生成策略是sequence(可以為Auto、IDENTITY、native等,Auto表示可在多個(gè)數(shù)據(jù)庫(kù)間切換),指定sequence的名字是repair_seq。

@SequenceGeneretor(name = “repair_seq”, sequenceName = “seq_repair”, allocationSize = 1):name為sequence的名稱,以便使用,sequenceName為數(shù)據(jù)庫(kù)的sequence名稱,兩個(gè)名稱可以一致。

@Transient:表示該屬性并非一個(gè)到數(shù)據(jù)庫(kù)表的字段的映射,ORM框架將忽略該屬性。如果一個(gè)屬性并非數(shù)據(jù)庫(kù)表的字段映射,就務(wù)必將其標(biāo)示為@Transient,否則,ORM框架默認(rèn)其注解為@Basic。@Basic(fetch=FetchType.LAZY):標(biāo)記可以指定實(shí)體屬性的加載方式

@JsonIgnore:作用是json序列化時(shí)將Java bean中的一些屬性忽略掉,序列化和反序列化都受影響。

@JoinColumn(name=”loginId”):一對(duì)一:本表中指向另一個(gè)表的外鍵。一對(duì)多:另一個(gè)表指向本表的外鍵。

@OneToOne、@OneToMany、@ManyToOne:對(duì)應(yīng)hibernate配置文件中的一對(duì)一,一對(duì)多,多對(duì)一。

全局異常處理

@ControllerAdvice:包含@Component。可以被掃描到。統(tǒng)一處理異常。

@ExceptionHandler(Exception.class):用在方法上面表示遇到這個(gè)異常就執(zhí)行以下方法。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • spring
    +關(guān)注

    關(guān)注

    0

    文章

    340

    瀏覽量

    14906
  • 系統(tǒng)
    +關(guān)注

    關(guān)注

    1

    文章

    1029

    瀏覽量

    21729
  • 注解
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    2746
  • SpringBoot
    +關(guān)注

    關(guān)注

    0

    文章

    175

    瀏覽量

    324
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Springboot是如何獲取自定義異常并進(jìn)行返回的

    源碼剖析Springboot是如何獲取自定義異常并進(jìn)行返回的。來(lái)吧!第一步:肯定是在Springboot啟動(dòng)的過程中進(jìn)行的異常處理初始化,于是就找到了handlerExceptionResolver類
    發(fā)表于 03-22 14:15

    Spring Boot的注解原理是什么

    首先,先看SpringBoot的主配置類: @SpringBootApplicationpublic class StartEurekaApplication { public static
    的頭像 發(fā)表于 08-27 09:24 ?2351次閱讀

    Spring Boot中常見的各類型注解的使用方式

    大家好,我是程序汪,企業(yè)開發(fā)項(xiàng)目SpringBoot已經(jīng)是必備框架了,其中注解是開發(fā)中的小工具(誰(shuí)處可見哦),用好了開發(fā)效率大大提升,當(dāng)然用錯(cuò)了也會(huì)引入缺陷。
    的頭像 發(fā)表于 06-20 16:38 ?2068次閱讀

    Spring Boot常用注解與使用方式

    企業(yè)開發(fā)項(xiàng)目SpringBoot已經(jīng)是必備框架了,其中注解是開發(fā)中的小工具(誰(shuí)處可見哦),用好了開發(fā)效率大大提升,當(dāng)然用錯(cuò)了也會(huì)引入缺陷。
    的頭像 發(fā)表于 07-08 10:57 ?1652次閱讀

    求一種SpringBoot定時(shí)任務(wù)動(dòng)態(tài)管理通用解決方案

    SpringBoot的定時(shí)任務(wù)的加強(qiáng)工具,實(shí)現(xiàn)對(duì)SpringBoot原生的定時(shí)任務(wù)進(jìn)行動(dòng)態(tài)管理,完全兼容原生@Scheduled注解,無(wú)需對(duì)原本的定時(shí)任務(wù)進(jìn)行修改
    的頭像 發(fā)表于 02-03 09:49 ?979次閱讀

    什么是 SpringBoot

    本文從為什么要有 `SpringBoot`,以及 `SpringBoot` 到底方便在哪里開始入手,逐步分析了 `SpringBoot` 自動(dòng)裝配的原理,最后手寫了一個(gè)簡(jiǎn)單的 `start` 組件,通過實(shí)戰(zhàn)來(lái)體會(huì)了 `
    的頭像 發(fā)表于 04-07 11:28 ?1675次閱讀
    什么是 <b class='flag-5'>SpringBoot</b>?

    SpringBoot常用注解及使用方法1

    基于 SpringBoot 平臺(tái)開發(fā)的項(xiàng)目數(shù)不勝數(shù),與常規(guī)的基于`Spring`開發(fā)的項(xiàng)目最大的不同之處,SpringBoot 里面提供了大量的注解用于快速開發(fā),而且非常簡(jiǎn)單,基本可以做到開箱即用! 那
    的頭像 發(fā)表于 04-07 11:51 ?878次閱讀

    SpringBoot常用注解及使用方法2

    基于 SpringBoot 平臺(tái)開發(fā)的項(xiàng)目數(shù)不勝數(shù),與常規(guī)的基于Spring開發(fā)的項(xiàng)目最大的不同之處,SpringBoot 里面提供了大量的注解用于快速開發(fā),而且非常簡(jiǎn)單,基本可以做到開箱即用!
    的頭像 發(fā)表于 04-07 11:52 ?842次閱讀

    SpringBoot常用注解及原理

    SpringBootConfiguration繼承自@Configuration,二者功能也一致,標(biāo)注當(dāng)前類是配置類, 并會(huì)將當(dāng)前類內(nèi)聲明的一個(gè)或多個(gè)以@Bean注解標(biāo)記的方法的實(shí)例納入到spring容器中,并且實(shí)例名就是方法名。
    的頭像 發(fā)表于 04-07 14:30 ?741次閱讀

    SpringBoot的核心注解1

    今天跟大家來(lái)探討下SpringBoot的核心注解@SpringBootApplication以及run方法,理解下springBoot為什么不需要XML,達(dá)到零配置
    的頭像 發(fā)表于 04-07 14:34 ?911次閱讀
    <b class='flag-5'>SpringBoot</b>的核心<b class='flag-5'>注解</b>1

    SpringBoot的核心注解2

    今天跟大家來(lái)探討下SpringBoot的核心注解@SpringBootApplication以及run方法,理解下springBoot為什么不需要XML,達(dá)到零配置
    的頭像 發(fā)表于 04-07 14:34 ?2172次閱讀
    <b class='flag-5'>SpringBoot</b>的核心<b class='flag-5'>注解</b>2

    springmvc常用5種注解

    SpringMVC是一種基于Java的Web框架,使用注解可以更加方便靈活地開發(fā)和管理控制器,實(shí)現(xiàn)請(qǐng)求的映射和處理。在SpringMVC中,有許多常用注解,本文將詳細(xì)介紹其中的五種注解
    的頭像 發(fā)表于 11-22 16:51 ?1247次閱讀

    springboot核心注解

    Spring Boot 是基于 Spring 框架的開源框架,它可以幫助開發(fā)者快速構(gòu)建、部署和運(yùn)行獨(dú)立的、生產(chǎn)級(jí)的 Spring 應(yīng)用程序。Spring Boot 提供了一系列核心注解,這些注解可以
    的頭像 發(fā)表于 11-23 09:23 ?755次閱讀

    一個(gè)注解搞定SpringBoot接口防刷

    技術(shù)要點(diǎn):springboot的基本知識(shí),redis基本操作,
    的頭像 發(fā)表于 11-28 10:46 ?553次閱讀

    SpringBoot核心注解由幾個(gè)注解組成

    簡(jiǎn)化應(yīng)用程序開發(fā)的注解,其中核心注解包括 @SpringBootApplication、@RestController、@RequestMapping、@Autowired、@ComponentScan
    的頭像 發(fā)表于 12-03 15:09 ?999次閱讀
    主站蜘蛛池模板: 国产精品久久久久久一级毛片 | 四虎884| www.成人av.com | 97精品伊人久久大香线蕉 | 亚洲国产精品久久网午夜 | 中文字幕在线看精品乱码 | 特级aaa毛片 | 福利在线看 | 天天综合天天做 | 在线视频免费视频网站 | 色狠狠一区二区 | 四虎影院com| 夜夜摸夜夜操 | 免费一级欧美在线观看视频片 | 操女人免费视频 | 看亚洲a级一级毛片 | 婷婷亚洲综合五月天小说在线 | 久久婷婷人人澡人人爱91 | 88av在线看| 日韩大胆 | 免费a网 | 婷婷色综合久久 | 色费女人18女人毛片免费视频 | 久久综合97色综合网 | 波多野结衣一级毛片 | 日本一区三区二区三区四区 | 在线五月婷婷 | 亚洲毛片免费在线观看 | 色黄在线观看 | 操您啦 | 一本到在线观看视频不卡 | 国产网站免费观看 | 精品国产免费观看一区高清 | 手机看片日韩1024 | 亚洲天堂免费观看 | 六月婷婷激情 | 丁香午夜 | 天天爱天天操天天干 | 精品国产污网站在线观看15 | 天天做天天爱夜夜爽 | 色老久久精品偷偷鲁一区 |