天天看點

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

@MapperScan 用來掃描指定包内的所有mapper

@SpringBootApplication 是 Spring Boot 最核心、最基礎的注解。

@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依賴

@RunWith(SpringJUnit4ClassRunner.class),建立容器

@ContextConfiguration("classpath:xxx.xml"),加載配置檔案

@Test,測試方法

@Aspect 把目前類辨別為一個切面供容器進行讀取

@before(前置通知)通知方法在目标方法調用之前執行

@after(後置通知)通知方法在目标方法傳回或異常後調用

@after-returning(傳回後通知)通知方法會在目标方法傳回後調用

@after-throwing(抛出異常通知)通知方法會在目标方法抛出異常後調用

@around(環繞通知) 通知方法會将目标方法封裝起來

首先要在配置檔案中開啟注解事務

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

@EnableScheduling加在Application類上

@Scheduled加在需要使用定時器的方法上

别名

@Alias