Spring Boot應用程式中的常用註釋列表

banq發表於2020-04-08

本文包含Spring Boot應用程式中常用註解的不完整列表。此列表旨在快速查詢,有關詳細和全面的資訊,請閱讀Java官方文件和文件。
Spring Core
  • @Bean 註釋的方法會產生一個由Spring IoC容器管理的bean
  • Stereotype註釋
    • @Component-將帶註釋的類標記為元件掃描找到的並載入到應用程式上下文中的bean
    • @Controller 註釋的類標記為包含請求處理程式的Spring MVC的bean
    • @RestController 註釋的類標記為@Controllerbean,並新增@ResponseBody以訊息形式序列化返回的結果
    • @ Configuration-將帶註釋的類標記為定義bean的Java配置
    • @Service 註釋的類標記為Bean(通常包含業務邏輯的約定)
    • @Repository  標記註釋類為bean(如約定通常提供的資料訪問),並增加從SQLException到DataAccessExceptions自動翻譯

bean狀態
  • @PostConstruct-註解方法在完成依賴項注入後執行初始化
  • @PreDestroy註釋的方法在銷燬bean之前執行,例如在關閉時

組態配置
  • @Import-匯入一個或多個Java配置類@Configuration
  • @PropertySource-指示applicaiton.properties將鍵值對新增到Spring 的檔案的位置Environment
  • @Value 註釋的欄位和引數值將被注入
  • @ComponentScan  配置掃描@Compenent,@Service等等元件。

bean屬性

bean注射
  • @Autowired Bean注入帶註釋的setter,欄位或建構函式引數中。
  • @Qualifier-指定bean的名稱作為附加條件,以標識用於自動裝配的唯一候選物件

SpringBoot

SpringBoot測試
  • @SpringBootTest-釋的測試類將載入整個應用程式上下文以進行整合測試
  • @WebMvcTest註釋的測試類將僅載入Web層(服務和資料層將被忽略)
  • @DataJpaTest註釋的類將僅載入JPA元件
  • @MockBean-註釋的欄位標記為模擬並將其作為Bean載入到應用程式上下文中
  • @SpyBean-允許部分Mock bean
  • @Mock-將帶註釋的欄位定義為模擬mock

Spring測試
  • @ContextConfiguration-定義@Configuration為整合測試載入應用程式上下文
  • @ExtendWith-定義擴充套件以執行測試,例如MockitoExtension
  • @SpringJUnitConfig-結合@ContextConfiguration和@ExtendWith(SpringExtension.class)
  • @TestPropertySource-定義整合測試中使用的屬性檔案的位置
  • @DirtiesContext-指示帶註釋的測試弄髒了應用程式上下文,並且將在每次測試後清除
  • @ActiveProfiles-定義在初始化測試應用程式上下文時應載入哪個活動bean定義
  • @Sql-允許定義SQL指令碼和語句在測試之前和之後執行

事務管理

Spring JPA和Hibernate
  • @Id 註釋的欄位標記為實體的主鍵
  • @GeneratedValue-提供主鍵的生成策略
  • @Entity 註釋的類標記為實體
  • @Column-為欄位提供其他配置,例如列名
  • @Table-為實體提供其他配置,例如表名
  • @PersistenceContext - EntityManger注入註釋的制定者和領域
  • @Embedded 註釋的欄位被例項化為Embeddable類的值
  • @Embeddable-帶註釋的類的例項儲存為實體的一部分
  • @EmbeddedId- 註釋的屬性標記為由可嵌入類對映的複合鍵
  • @AttributeOverride-覆蓋欄位的預設對映
  • @Transient 註釋的欄位不是永續性的
  • @CreationTimestamp 註釋的欄位包含首次儲存實體時的時間戳
  • @UpdateTimestamp 註釋的欄位包含實體上次更新時的時間戳
  • @ManyToOne-表示N:1關係,包含帶註釋欄位的實體與其他類的實體具有單個關係,但另一個類具有多個關係
  • @JoinColumn-指示用於在擁有方或單向連線實體@ManyToOne或@OneToOne關係的列@OneToMany
  • @OneToOne-表示1:1關係
  • @MapsId-引用連線擁有@ManyToOne或@OneToOne關聯方的列,作為引用和被引用實體的主鍵
  • @ManyToMany-表示N:M關係
  • @JoinTable-使用聯接表指定關聯
  • @BatchSize-定義大小以延遲載入帶註釋的實體的集合
  • @FetchMode-定義關聯的獲取策略,例如,在單個子查詢中載入所有實體

Spring安全

SpringAOP
  • @EnableAspectJAutoProxy-啟用對標記為的元件的支援@Aspect
  • @Aspect-將帶註釋的元件宣告為包含切入點和建議的方面
  • @Before-宣告在將呼叫傳播到連線點之前執行的切入點
  • @AfterReturning-宣告如果連線點成功返回結果則執行的切入點
  • @AfterThrowing-宣告如果連線點引發異常則執行的切入點
  • @After-宣告如果連線點成功返回結果或引發異常,則執行切入點
  • @Around-宣告在呼叫之前執行的切入點,以控制對建議的連線點的執行
  • @Pointcut-外部化定義切入點表示式

此列表是經過整理的,可以在GitHub(https://github.com/gindex/spring-boot-annotation-list)上進行分叉。

相關文章