SpringBoot中常見的注解總結


自動裝配

  • @Autowired 可以通過對象的類型來自動加載某個類
  • @Qualifier 經常與@Autowired一起使用,通過具體名字來自動裝配
  • @Resource 有兩個屬性:name和type,默認是按照byName注入,相當於前兩個整合

前面三個注解針對於bean類型的數據,基本類型和String類型無法實現,因此有了@value注解

  • @value value屬性用於指定數據的值,可以用 ${表達式} 的寫法

三層架構注解

  • @Controller 控制層 handler處理器
  • @Service 服務層
  • @Repository 持久層,DAO層
  • @Component 在確定不了是哪一個層的時候使用

Spring會把這四個注解當作需要注入的Bean加載在上下文中

參數傳遞

  • @RequestMapping 這個注解可以作用在方法上,用來指定請求路徑。
  • @RequestBody 用在控制層的方法上,可以將前端傳回來的json轉換為java對象
  • @ResponseBody 用在控制層方法上,可以將方法返回的Java對象轉為json數據傳到前端
    這些注解作用於類上,該類的所有方法都適用。
  • @RestController 用在類上,相當於@Controller+@ResponseBody

Application

  • @MapperScan 用來掃描指定包內的所有mapper
  • @SpringBootApplication 是 Spring Boot 最核心、最基礎的注解。

配置Bean

  • @Configuration 用於定義配置類,可以替換xml配置文件。該配置可以省略,加上該注解,獲得的類對象默認為單例
  • @Bean 在@Configuration注解下進行創建,在方法上使用@Bean就表明這個方法需要交給Spring進行管理
  • @Scope 設置Bean的作用域。
    • singleton 單例模式,bean的默認作用域,單例模式對於無會話狀態的bean(DAO、service)來說,是最理想的選擇
    • prototype 原型模式,對需要保持會話狀態的bean應該使用prototype
    • request 該作用域僅在當前 HTTP Request 內有效
    • session 該作用域僅在當前 HTTP Session 內有效
    • application bean對象的定義范圍在ServletContext生命周期內。僅僅在web-aware的上下文中有效
    • websocket bean對象的定義為WebSocket的生命周期內。僅僅在web-aware的上下文中有效
  • @PostConstruct 注解在方法上,表示該方法是在Spring實例化該Bean之后馬上執行此方法。一個Bean中@PostConstruct注解的方法可以有多個
  • @PreDestory 容器銷毀前執行該方法

整合單元測試

不用啟動項目就可以進行測試
需要先添加junit依賴

<dependency>
	<groupId>junit</groupId>
	<artifactId>junit</artifactId>
	<version>4.12</version>
	<scope>test</scope> 
</dependency>

@RunWith(SpringJUnit4ClassRunner.class),創建容器
@ContextConfiguration("classpath:xxx.xml"),加載配置文件
@Test,測試方法

面向切面編程-通知

@Aspect 把當前類標識為一個切面供容器進行讀取

  • @before(前置通知)通知方法在目標方法調用之前執行
  • @after(后置通知)通知方法在目標方法返回或異常后調用
  • @after-returning(返回后通知)通知方法會在目標方法返回后調用
  • @after-throwing(拋出異常通知)通知方法會在目標方法拋出異常后調用
  • @around(環繞通知) 通知方法會將目標方法封裝起來

注解事務

首先要在配置文件中開啟注解事務

<tx:annotation-driven transaction-manager="transactionManager" />

@Transactional添加在接口實現類或接口實現方法上,而不是接口類中。只有public的方法才起作用

注解實現定時器

@EnableScheduling加在Application類上
@Scheduled加在需要使用定時器的方法上
借鑒 https://www.cnblogs.com/ysySelf/p/10812900.html 中有具體參數配置

別名

@Alias


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM