Spring 常用註解清單

spring 註解

核心註解

@Required

  • 在Bean的set方法上使用,表示該屬性不可爲空

@Autowired

  • 自動注入Bean,方式爲ByType。使用@Autowired(required = false)時,即便找不到Bean也不會報錯

@Qualifier

  • 該註解通常和@Autowired一起使用,可以當作ByName注入Bean,使用@Qualifier可以避免相同類型不同作用Bean注入時的混亂

@Configuration

  • 等價於spring.xml配置文件,該註解可以替換爲JavaBean方式進行開發,如需使用xml方式開發可以使用@ImportResource(locations={"classpath:applicationContext.xml"})方式.

@ComponentScan

  • 指定bean掃描路徑,和@Configuration一起使用來發現和裝配Bean.如果不填寫basePackages會從該註解所在包以及子包開始掃描。

@ImportResource

  • 用來加載xml配置文件

@Bean

  • 等價於·`,將註解放在方法上交給spring管理

@Lazy

  • 延時加載.與@Configuration一起使用所有的Bean都是懶加載.

@Value

  • 用於注入application.ymlapplication.properties中配置的屬性值

@Import

  • 導入其他配置類

語義註解

@Component

  • 類級別,表示這是一個spring組件.

@Controller

  • 類級別,定義controller,修飾url請求層組件。其本質也是@Commponent

@RestController

  • 類級別,定義controller,修飾url請求層組件。其本質也是@Commponent

@Service

  • 類級別,定義service,修飾service層組件.其本質也是@Commponent

@Repository

  • 類級別,定義repository,修飾dao層組件。其本質也是@Commponent

MVC註解

@Controller

  • controller層組件

@RestController

  • controller層組件

@RequestMapping

  • 表示url請求地址
    • GetMapping:@RequestMapping(method = RequestMethod.GET)
    • PostMapping:@RequestMapping(method = RequestMethod.POST)
    • PutMapping:@RequestMapping(method = RequestMethod.Put)
    • PatchMapping:@RequestMapping(method = RequestMethod.PATCH)
    • DeleteMapping:@RequestMapping(method = RequestMethod.DELETE)

@CookieValue

  • 用在方法上獲取cookie

@CrossOrigin

  • 跨域實現

@ExceptionHandler

  • 用在方法上,指定具體異常處理類

@InitBinder

  • 初始化數據綁定器,用於數據綁定,數據轉換

@Valid

  • 數據驗證

@MatrixVariable

  • 矩陣變量

@PathVariable

  • 路徑變量

@RequestAttribute

  • 綁定請求屬性到handler方法參數

@RequestBody

  • 指示方法參數應該綁定到Http請求Body HttpMessageConveter負責將HTTP請求消息轉爲對象

@RequestHeader

  • 映射控制器參數到請求頭的值

@RequestParam

  • 請求參數

@ResponseBody

  • 返回值對象註解轉換成json

@ResponseStatus

  • 返回狀態碼

@SessionAttribute

  • 用於方法參數。綁定方法參數到會話屬性

@SessionAttributes

  • 用於將會話屬性用Bean封裝

@ModelAttribute

  • 把值綁定到Model中,使全局@RequestMapping可以獲取到該值

定時任務註解

@Scheduled

  • 方法級別,參數爲 cron 表達式

調度註解

@Async

  • 方法級別,每個方法均都在單獨的線程中,可接受參數;可返回值,也可不返回值。

測試註解

@BootstrapWith

  • 類級別,配置spring測試上下文

@ContextConfiguration

  • 類級別,指定配置文件

@WebAppConfiguration

  • 類級別,指定測試環境 WebAppConfiguration

@Timed

  • 方法級別,指定測試方法的執行時間,超時失敗

@Repeat

  • 方法級別,指定運行次數

@Commit

  • 類級別&方法級別,指定事務提交

@RollBack

  • 類級別&方法級別,指定事務的回滾

@DirtiesContext

@BeforeTransaction

  • 方法級別,指示具有該註解的方法應該在所有@Transactional註解的方法之前執行

@AfterTransaction

  • 方法級別,指示具有該註解的方法應該在所有@Transactional註解的方法之後執行

@Sql

  • 類級別&方法級別,運行Sql腳本 方法上的@Sql會覆蓋類級別的@Sql

@SpringBootTest

  • spring boot 集成測試上下文

@DataJpaTest

@DataMongoTest

  • 內置MongoDB集成測試

@WebMVCTest

  • controller層測試

@AutoConfigureMockMVC

  • controller層測試,加載springboot完整上下文

@MockBean

  • 注入MockBean

@JsonTest

@TestPropertySource

JPA註解

@Entity

  • 實體類註解,常和@Table配合使用

@Table

  • 表註解,name填寫數據庫表名

@Column

  • 數據表列註解

@Id

  • 主鍵註解

@GeneratedValue

  • 主鍵生成策略
    • TABLE:使用一個特定的數據庫表格來保存主鍵。
    • SEQUENCE:根據底層數據庫的序列來生成主鍵,條件是數據庫支持序列。
    • IDENTITY:主鍵由數據庫自動生成(主要是自動增長型)
    • AUTO:主鍵由程序控制

@SequenceGeneretor

  • 自動爲實體的數字標識字段/屬性分配值

@MappedSuperClass

  • 用在確定是父類的Entity上。父類的屬性可被子類繼承

@NoRepositoryBean

  • 在充當父類的Repository上註解,告訴Spring不要實例化該Repository

@Transient

  • 表示該屬性並非是一個到數據庫表字段的映射,ORM框架應忽略它。 如果一個屬性並非數據庫表的字段映射,就務必將其標示爲@Transient,否則,ORM框架默認其註解爲@Basic

@Basic

  • 指定實體數據屬性的加載方式
    • LAZY:延遲加載
    • EAGER:全部加載

@JsonIgnore

  • 指示當進行序列化或反序列化時,忽略該屬性

@JoinColumn

  • 一對一:本表中指向另一個表的外鍵。 一對多:另一個表指向本表的外鍵

@OneToOne

  • 一對一註解

@OneToMany

  • 一對多註解

@ManyToOne

  • 多對一註解

事務註解

@Transactional

  • 用於接口、接口中的方法、類、類中的公有方法 光靠該註解並不足以實現事務
    僅是一個元數據,運行時架構會使用它配置具有事務行爲的Bean
  • 支持特性
    • 傳播類型
    • 隔離級別
    • 操作超時
    • 只讀標記

緩存註解

@Cacheable

  • 方法級別

@CachePut

  • 方法級別,更新緩存

@CacheEvict

  • 方法級別,清除緩存

@CacheConfig

  • 類級別,緩存配置

SpringBoot註解

@EnableAutoConfiguration

  • 自動配置註解,可以將該註解配合@Configuration來完成配置類的自動裝配

@SpringBootApplication

  • 該註解是以下三個註解的合併體@SpringBootConfigurationEnableAutoConfiguration@ComponentScan

Spring Cloud註解

@EnableConfigServer

  • 配置服務器

@EnableEurekaServer

  • 服務註冊

@EnableDiscoveryClient

  • 服務發現

@EnableCircuitBreaker

  • 熔斷器

@HystrixCommand

  • 服務降級

異常註解

@ExceptionHandler

  • 捕獲異常進行處理

@ControllerAdvice

  • 統一異常處理,一般與@ExceptionHandler一起使用

@RestControllerAdvice

  • @RestControllerAdvice= @ControllerAdvice +@ResponseBody
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章