易筋SpringBoot 2.1 | 第十九篇:SpringBoot的常用註解

寫作時間:2019-08-19
Spring Boot: 2.1 ,JDK: 1.8, IDE: IntelliJ IDEA

說明

Spring核心技能有兩個,Inversion of Control(IOC)控制翻轉,Aspect-oriented Programming (AOP) 切面編程。

  1. 其中IOC也叫dependency injection (DI)依賴注入。也就是初始化對象叫做Bean不需要自己new出來,交給框架的Factory自動生產即可。
    org.springframework.beansorg.springframework.context 這兩個packages 是Spring Framework’s IoC 的基礎容器container. BeanFactory interface接口提供了高級配置機制,使可以管理任何類型的對象object. ApplicationContext是BeanFactory的子接口.
    IOC 圖解
  2. AOP的思想一就是模塊化所有的類,這樣子有個好處就是你可以按需加載項目需要的組件。思想二就是可以給方法前面,中間,後面增強功能。

現在都是用註解來配合處理。所以這節就複習常用的註解。

Java Config 相關注解

  1. @Configuration
    標明當前類爲配置類
  2. @ImportResource
    把XML的文件配置信息注入進來
  3. @ComponentScan
    告訴整個Spring的容器,我裏面可以掃描哪些package下的Bean配置
  4. @Bean
    在Java @Configuration的類當中,如果方法被標註爲@Bean, 它的返回就可以當做Spring的配置,存在於 ApplicationContext
  5. @ConfigurationProperties
    key=value的配置文件的信息,讀取並自動封裝成實體類。

Bean定義相關注解

  1. @Component
    所有Java Bean都可以通過Component來定義,在類上面定義即可。
  2. @Repository
    標識數據庫訪問層的Bean
  3. @Service
    標識服務層的Bean
  4. @Controller
    Web層的Bean
  5. @RestController
    Restful的Bean,由@Controller,@ResponseBody組合而成
  6. @RequestMapping
    定義方法是在訪問url下面相應的

Bean注入相關注解

  1. @Autowired
    按照類型進行查找注入進來
  2. @Qualifier
    在整個上下文當中,有多個同類型的Bean,指定Bean不同的名字來注入。需要配合@Autowired使用
  3. @Resource
    指定Bean不同的名字來注入,單獨使用即可,不需要@Autowired。
  4. @Value
    在Bean中注入一些常量,或者配置中的信息。

Lombok / Log

Project Lombok 能夠自動嵌入IDE和構建工具,提升開發效率

常用功能

  1. @Getter / @Setter
    自動生成Getter, Setter
  2. @ToString
    把所有屬性生成一個String
  3. @NoArgsConstructor / @RequiredArgsConstructor / @AllArgsConstructor
    生成構造方法
  4. @Data
    包含@Getter / @Setter 和 @ToString
  5. @Builder
    幫助生成構造方法
  6. @Slf4j / @CommonsLog / @Log4j2
    日誌輸出

參考

https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#spring-core

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