Springboot常用注解大全

springboot注解:
@Service:?注解在類上庐完,表示這是一個業(yè)務(wù)層bean
@Controller:注解在類上钢属,表示這是一個控制層bean
@Repository:?注解在類上,表示這是一個數(shù)據(jù)訪問層bean
@Component: 注解在類上门躯,表示通用bean?淆党,value不寫默認(rèn)就是類名首字母小寫
@Autowired:按類型注入.默認(rèn)屬性required= true;當(dāng)不能確定 Spring 容器中一定擁有某個類的Bean 時, 可以在需要自動注入該類 Bean 的地方可以使用 @Autowired(required = false)讶凉, 這等于告訴Spring:在找不到匹配Bean時也不拋出BeanCreationException 異常染乌。@Autowired 和 @Qualifier 結(jié)合使用時,自動注入的策略就從 byType 轉(zhuǎn)變byName 了懂讯。@Autowired可以對成員變量荷憋、方法以及構(gòu)造函數(shù)進(jìn)行注釋,而 @Qualifier 的標(biāo)注對象是成員變量域醇、方法入?yún)ⅰ?gòu)造函數(shù)入?yún)⑷叵薄U怯捎谧⑨寣ο蟮牟煌┲浚?Spring 不將 @Autowired 和 @Qualifier 統(tǒng)一成一個注釋類。@Resource: 按名稱裝配

區(qū)別:

@Resource默認(rèn)按照名稱方式進(jìn)行bean匹配酪呻,@Autowired默認(rèn)按照類型方式進(jìn)行bean匹配@Resource(importjavax.annotation.Resource;)是J2EE的注解减宣,@Autowired(importorg.springframework.beans.factory.annotation.Autowired;)是Spring的注解@Configuration:注解在類上,表示這是一個IOC容器玩荠,相當(dāng)于spring的配置文件漆腌,java配置的方式。 IOC容器的配置類一般與 @Bean 注解配合使用阶冈,用 @Configuration 注解類等價與 XML 中配置 beans闷尿,用@Bean 注解方法等價于 XML 中配置 bean。@Bean: 注解在方法上女坑,聲明當(dāng)前方法返回一個Bean

@Scope:注解在類上填具,描述spring容器如何創(chuàng)建Bean實例。

(1)singleton: 表示在spring容器中的單例匆骗,通過spring容器獲得該bean時總是返回唯一的實例

(2)prototype:表示每次獲得bean都會生成一個新的對象

(3)request:表示在一次http請求內(nèi)有效(只適用于web應(yīng)用)

(4)session:表示在一個用戶會話內(nèi)有效(只適用于web應(yīng)用)

(5)globalSession:表示在全局會話內(nèi)有效(只適用于web應(yīng)用)

在多數(shù)情況劳景,我們只會使用singleton和prototype兩種scope,如果未指定scope屬性碉就,默認(rèn)為singleton@Value:注解在變量上盟广,從配置文件中讀取。

例如:@Value(value = “#{message}”)

@ConfigurationProperties???賦值瓮钥,將注解轉(zhuǎn)換成對象筋量。給對象賦值烹吵。車險項目:HttpClientSetting類

@Profile:注解在方法類上在不同情況下選擇實例化不同的Bean特定環(huán)境下生效!C住D甓!!2D肌V凰稹!F哌帧T颈埂!0啊1妗!;壤O冉稀!悼粮!

@SpringBootApplication:@SpringBootApplication=@ComponentScan+@Configuration+@EnableAutoConfiguration:約定優(yōu)于配置

@EnableAutoConfiguration啟用 Spring?應(yīng)用程序上下文的自動配置闲勺,試圖猜測和配置您可能需要的bean。自動配置類通常采用基于你的classpath 和已經(jīng)定義的 beans 對象進(jìn)行應(yīng)用扣猫。被 @EnableAutoConfiguration 注解的類所在的包有特定的意義菜循,并且作為默認(rèn)配置使用。通常推薦將 @EnableAutoConfiguration 配置在 root 包下申尤,這樣所有的子包癌幕、類都可以被查找到。

@ComponentScan:注解在類上昧穿,掃描標(biāo)注了@Controller等注解的類勺远,注冊為bean 。@ComponentScan 為 @Configuration注解的類配置組件掃描指令时鸵。@ComponentScan 注解會自動掃描指定包下的全部標(biāo)有 @Component注解的類谚中,并注冊成bean,當(dāng)然包括 @Component下的子注解@Service寥枝、@Repository宪塔、@Controller。?

@RestController?@RestController?是一個結(jié)合了 @ResponseBody?和 @Controller 的注解

@Responsebody?注解表示該方法的返回的結(jié)果直接寫入 HTTP?響應(yīng)正文(ResponseBody)中囊拜,一般在異步獲取數(shù)據(jù)時使用某筐,通常是在使用 @RequestMapping 后,返回值通常解析為跳轉(zhuǎn)路徑冠跷,加上@Responsebody 后返回結(jié)果不會被解析為跳轉(zhuǎn)路徑南誊,而是直接寫入HTTP 響應(yīng)正文中身诺。

@RequestBody

@PathVariable

@RequestParam

兩者的作用都是將request里的參數(shù)的值綁定到contorl里的方法參數(shù)里的,區(qū)別在于抄囚,URL寫法不同霉赡。

當(dāng)請求參數(shù)username不存在時會有異常發(fā)生,可以通過設(shè)置屬性required=false解決,例如:

@RequestParam(value="username",required=false)

使用@RequestParam時,URL是這樣的:http://host:port/path?參數(shù)名=參數(shù)值

使用@PathVariable時幔托,URL是這樣的:http://host:port/path/參數(shù)值

不寫的時候也可以獲取到參數(shù)值穴亏,但是必須名稱對應(yīng)。參數(shù)可以省略不寫

@RequestMapping  和請求報文是做對應(yīng)的     a:value重挑,指定請求的地址?  b:method 請求方法類型 這個不寫的話嗓化,自適應(yīng):get或者post  c:consumes 請求的提交內(nèi)容類型?  d:produces 指定返回的內(nèi)容類型 僅當(dāng)request請求頭中的(Accept)類型中包含該指定類型才返回  e: params 指定request中必須包含某些參數(shù)值?  f:headers 指定request中必須包含指定的header值

g: name??指定映射的名稱 ?

?@RequestMapping(method = RequestMethod.GET)

?@RequestMapping(method = RequestMethod.POST)

?@RequestMapping(method = RequestMethod.PUT)

?@RequestMapping(method = RequestMethod.DELETE)

?當(dāng)然也可以使用

?@GetMapping

?@PostMapping

?@PutMapping

?@DeleteMapping?這與上面的是一樣的效果


@EnablCaching?@EnableCaching注解是spring framework中的注解驅(qū)動的緩存管理功能。自spring版本3.1起加入了該注解谬哀。如果你使用了這個注解刺覆,那么你就不需要在XML文件中配置cache manager了。

@suppresswarnings 抑制警告

@Modifying 如果是增史煎,改谦屑,刪加上此注解

1:方法的返回值應(yīng)該是int,表示更新語句所影響的行數(shù)篇梭。

2:在調(diào)用的地方必須加事務(wù)氢橙,沒有事務(wù)不能正常執(zhí)行。@Transactional? 事務(wù)注解

@Query?自定義查詢語句?JPQL

JPA注解

@Entity:

@Table(name=“”):注解在類上表明這是一個實體類很洋。一般用于jpa這兩個注解一般一塊使用充蓝,但是如果表名和實體類名相同的話隧枫,@Table可以省略

@Column:通過@Column注解設(shè)置喉磁,包含的設(shè)置如下?name:數(shù)據(jù)庫表字段名?unique:是否唯一?nullable:是否可以為空?

Length:長度inserttable:是否可以插入?updateable:是否可以更新?columnDefinition: 定義建表時創(chuàng)建此列的DDL?secondaryTable: 從表名。如果此列不建在主表上(默認(rèn)建在主表)官脓,該屬性定義該列所在從表的名字协怒。?@Column(name = "user_code", nullable = false, length=32)//設(shè)置屬性userCode對應(yīng)的字段為user_code,長度為32卑笨,非空?????private String userCode;?????@Column(name = "user_wages", nullable = true, precision=12,scale=2)//設(shè)置屬性wages對應(yīng)的字段為user_wages孕暇,12位數(shù)字可保留兩位小數(shù),可以為空?????private double wages;??

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

@Temporal(TemporalType.DATE)//設(shè)置為時間類型?????private Date joinDate;?

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

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

@JoinColumn(name=”loginId”):一對一:本表中指向另一個表的外鍵座舍。一對多:另一個表指向本表的外鍵。

@OneToOne陨帆、@OneToMany曲秉、@ManyToOne:對應(yīng)hibernate配置文件中的一對一采蚀,一對多,多對一承二。

@GeneratedValue?用于標(biāo)注主鍵的生成策略榆鼠,通過 strategy 屬性指定。默認(rèn)情況下亥鸠,JPA 自動選擇一個最適合底層數(shù)據(jù)庫的主鍵生成策略:SqlServer 對應(yīng) identity妆够,MySQL 對應(yīng) auto increment。 在 javax.persistence.GenerationType 中定義了以下幾種可供選擇的策略:

IDENTITY:采用數(shù)據(jù)庫 ID自增長的方式來自增主鍵字段读虏,Oracle 不支持這種方式责静;

AUTO: JPA自動選擇合適的策略,是默認(rèn)選項盖桥;

SEQUENCE:通過序列產(chǎn)生主鍵灾螃,通過?@SequenceGenerator?注解指定序列名,MySql 不支持這種方式

TABLE:通過表產(chǎn)生主鍵揩徊,框架借由表模擬序列產(chǎn)生主鍵腰鬼,使用該策略可以使應(yīng)用更易于數(shù)據(jù)庫移植

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市塑荒,隨后出現(xiàn)的幾起案子熄赡,更是在濱河造成了極大的恐慌,老刑警劉巖齿税,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件彼硫,死亡現(xiàn)場離奇詭異,居然都是意外死亡凌箕,警方通過查閱死者的電腦和手機(jī)拧篮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進(jìn)店門羡洁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來负蠕,“玉大人,你說我怎么就攤上這事枉圃∥弑冢” “怎么了礁凡?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長慧妄。 經(jīng)常有香客問我顷牌,道長,這世上最難降的妖魔是什么塞淹? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任窟蓝,我火速辦了婚禮,結(jié)果婚禮上窖铡,老公的妹妹穿的比我還像新娘疗锐。我一直安慰自己坊谁,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布滑臊。 她就那樣靜靜地躺著口芍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪雇卷。 梳的紋絲不亂的頭發(fā)上鬓椭,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天,我揣著相機(jī)與錄音关划,去河邊找鬼小染。 笑死,一個胖子當(dāng)著我的面吹牛贮折,可吹牛的內(nèi)容都是我干的裤翩。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼调榄,長吁一口氣:“原來是場噩夢啊……” “哼踊赠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起每庆,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤筐带,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后缤灵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伦籍,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年腮出,在試婚紗的時候發(fā)現(xiàn)自己被綠了帖鸦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡利诺,死狀恐怖富蓄,靈堂內(nèi)的尸體忽然破棺而出剩燥,到底是詐尸還是另有隱情慢逾,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布灭红,位于F島的核電站侣滩,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏变擒。R本人自食惡果不足惜君珠,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望娇斑。 院中可真熱鬧策添,春花似錦材部、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至浸颓,卻和暖如春物臂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背产上。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工棵磷, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人晋涣。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓仪媒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親谢鹊。 傳聞我的和親對象是個殘疾皇子规丽,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350