亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

太多注釋說明,有點亂,誰能幫我總結以下所有@。。。的用途嗎?

比如@Resource? @Bean? @Component。。。

正在回答

2 回答

springboot中的常用注解有:@SpringBootApplication、@Repository、@Service、@RestController、@ResponseBody、@Component、@ComponentScan等等。

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></bean>,放在方法的上面,而不是類,意思是產生一個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

路徑變量。參數與大括號里的名字一樣要相同。

17、@Profiles

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

任何@Component或@Configuration都能被@Profile標記,從而限制加載它的時機。

18、@ConfigurationProperties

Spring Boot可使用注解的方式將自定義的properties文件映射到實體bean中,比如config.properties文件。

19、@MapperScan

指定要變成實現類的接口所在的包,然后包下面的所有接口在編譯之后都會生成相應的實現類,添加位置:是在Springboot啟動類上面添加。

20、@Controller

用于標記在一個類上,使用它標記的類就是一個SpringMvc Controller對象,分發處理器會掃描使用該注解的類的方法,并檢測該方法是否使用了@RequestMapping注解。

21、@Param

地處Dao層,是為了傳遞多個參數,解決的是可讀性和直觀性。

22、@ApiModel

描述返回對象的意義,用在返回對象類上,在實體類上邊使用,標記類是swagger的解析類。

23、@ApiModelProperty

使用在被 @ApiModel 注解的模型類的屬性上,添加和操作模型屬性的數據

24、@Transactional

聲明式事務管理 編程中使用的注解,可以作用于接口、接口方法、類以及類方法上。當作用于類上時,該類的所有 public 方法將都具有該類型的事務屬性,同時,我們也可以在方法級別使用該標注來覆蓋類級別的定義。用來設置事務的傳播行為、隔離規則、回滾規則、事務超時、是否只讀。

25、@Override

偽代碼,表示重寫,Java中的。

26、@Scheduled

用來配置到方法上來完成對應的定時任務的配置,如執行時間,間隔時間,延遲時間等等,下面我們就來詳細的看下對應的屬性配置。


2 回復 有任何疑惑可以回復我~

@Resource? 類似@AutoWired? 不過實際還是@AutoWired使用比較多

@Bean 聲明方法的返回值為一個ioc管理的bean

@Component 聲明一個類的bean會被ioc容器創建并管理

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

太多注釋說明,有點亂,誰能幫我總結以下所有@。。。的用途嗎?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號