搜尋
首頁常見問題springboot有哪些常用註解?

springboot有哪些常用註解?

Apr 10, 2019 pm 01:10 PM
springboot註解

springboot中的常用註解有:1、SpringBootApplication;2、Repository;3、Service;4、RestController;5、ResponseBody;6、Component等。

springboot有哪些常用註解?

springboot中的常用註解有:

1、@SpringBootApplication

#這個註解是Spring Boot最核心的註解,用在Spring Boot的主類別上,標識這是一個Spring Boot 應用,用來開啟Spring Boot 的各項能力。實際上這個註解是@Configuration,@EnableAutoConfiguration,@ComponentScan三個註解的組合。由於這些註解一般都是一起使用,所以Spring Boot提供了一個統一的註解@SpringBootApplication。

2、@EnableAutoConfiguration

允許Spring Boot 自動設定註解,開啟這個註解之後,Spring Boot 就能根據目前類別路徑下的套件或類別來設定Spring Bean。

如:目前類別路徑下有 Mybatis 這個 JAR 套件,MybatisAutoConfiguration 註解就能根據相關參數來配置 Mybatis 的各個 Spring Bean。

@EnableAutoConfiguration實作的關鍵在於引入了AutoConfigurationImportSelector,其核心邏輯為selectImports方法,邏輯大致如下:

 ● 從設定檔META-INF/spring.factories載入所有可能用到的自動配置類別;

 ● 去重,並將exclude和excludeName屬性攜帶的類別排除;

 ● 過濾,將滿足條件(@Conditional)的自動設定類別傳回;

3、@Configuration

用於定義組態類,指出該類是Bean 配置的資訊來源,相當於傳統的xml設定文件,一般加在主類上。如果有些第三方函式庫需要用到xml文件,建議仍透過@Configuration類別作為專案的設定主類別-可以使用@ImportResource註解載入xml設定檔。

4、@ComponentScan

元件掃描。讓spring Boot掃描到Configuration類別並把它加入到程式上下文。

@ComponentScan註解預設就會組裝標識了@Controller,@Service,@Repository,@Component註解的類別到spring容器中。

5、@Repository

用於標註資料存取元件,即DAO元件。

使用@Repository註解可以確保DAO或repositories提供異常轉譯,這個註解修飾的DAO或repositories類別會被ComponetScan發現並配置,同時也不需要為它們提供XML配置項目。

6、@Service

一般用來修飾service層的元件

7、@RestController

用於標註控制層元件(如struts中的action),表示這是個控制器bean,並且是將函數的回傳值直接填入HTTP響應體中,是REST風格的控制器;它是@Controller和@ResponseBody的收藏。

8、@ResponseBody

表示方法的回傳結果直接寫入HTTP response body

一般在非同步取得資料時使用,在使用@RequestMapping後,回傳值通常解析為跳轉路徑,加上@responsebody後回傳結果不會被解析為跳轉路徑,而是直接寫入HTTP response body。例如非同步取得json數據,加上@responsebody後,會直接回傳json數據。

9、@Component

泛指元件,當元件不好歸類的時候,我們可以使用這個註解來標註。

10、@Bean

#相當於XML中的,放在方法的上面,而不是類,意思是產生一個bean,並交給spring管理。

11、@AutoWired

byType方式。把配置好的Bean拿來用,完成屬性、方法的組裝,它可以對類別成員變數、方法及建構子進行標註,完成自動組裝的工作。

當加上(required=false)時,就算找不到bean也不報錯。

12、@Qualifier

當有多個相同類型的Bean時,可以用@Qualifier("name")來指定。與@Autowired配合使用

13、@Resource(name="name",type="type")

沒有括號內內容的話,預設為byName。與@Autowired幹類似的事。

14、@RequestMapping

RequestMapping是用來處理請求位址映射的註解;提供路由訊息,負責URL到Controller中的具體函數的映射,可用於類別或方法上。用於類別上,表示類別中的所有回應請求的方法都是以該位址作為父路徑。

15、@RequestParam

用在方法的參數前面。例:

@RequestParam String a =request.getParameter("a")。

16、@PathVariable

路徑變數。參數與大括號裡的名字一樣要相同。範例:

RequestMapping("user/get/mac/{macAddress}")
public String getByMacAddress(@PathVariable String macAddress){
  //do something;
}

17、@Profiles

Spring Profiles提供了一種隔離應用程式配置的方式,並讓這些配置只能在特定的環境下生效。

任何@Component或@Configuration都能被@Profile标记,从而限制加载它的时机。

@Configuration
@Profile("prod")
public class ProductionConfiguration {
    // ...
}

18、@ConfigurationProperties

Spring Boot可使用注解的方式将自定义的properties文件映射到实体bean中,比如config.properties文件。

@Data
@ConfigurationProperties("rocketmq.consumer")
public class RocketMQConsumerProperties extends RocketMQProperties {
    private boolean enabled = true;
    private String consumerGroup;
    private MessageModel messageModel = MessageModel.CLUSTERING;
    private ConsumeFromWhere consumeFromWhere = ConsumeFromWhere.CONSUME_FROM_LAST_OFFSET;
    private int consumeThreadMin = 20;
    private int consumeThreadMax = 64;
    private int consumeConcurrentlyMaxSpan = 2000;
    private int pullThresholdForQueue = 1000;
    private int pullInterval = 0;
    private int consumeMessageBatchMaxSize = 1;
    private int pullBatchSize = 32;
}

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

以上是springboot有哪些常用註解?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),