SpringBoot常用注解有哪些?


 

@Service:

  注解在類上,表示這是一個業務層bean
@Controller:

  注解在類上,表示這是一個控制層bean
@Repository:

  注解在類上,表示這是一個數據訪問層bean
@Component

  注解在類上,表示通用bean ,value不寫默認就是類名首字母小寫

@Autowired:

按類型注入.默認屬性required= true;當不能確定 Spring 容器中一定擁有某個類的Bean 時, 可以在需要自動注入該類 Bean 的地方可以使用@Autowired(required = false), 這等於告訴Spring:在找不到匹配Bean時也不拋出BeanCreationException 異常。

@Configuration:

注解在類上,表示這是一個IOC容器,相當於spring的配置文件,java配置的方式。 IOC容器的配置類一般與 @Bean 注解配合使用,用@Configuration 注解類等價與 XML 中配置 beans,用@Bean 注解方法等價於 XML 中配置 bean。@Bean: 注解在方法上,聲明當前方法返回一個Bean

@Scope:注解在類上,描述spring容器如何創建Bean實例。

    1、singleton: 表示在spring容器中的單例,通過spring容器獲得該bean時總是返回唯一的實例

    2、prototype:表示每次獲得bean都會生成一個新的對象

    3、request:表示在一次http請求內有效(只適用於web應用)

    4、session:表示在一個用戶會話內有效(只適用於web應用)

    5、globalSession:表示在全局會話內有效(只適用於web應用)

    在多數情況,我們只會使用singleton和prototype兩種scope,如果未指定scope屬性,默認為singleton
@Value:

  注解在變量上,從配置文件中讀取

@ConfigurationProperties:

  賦值,將注解轉換成對象。給對象賦值

@SpringBootApplication:

  約定優於配置  @SpringBootApplication=@ComponentScan+@Configuration+@EnableAutoConfiguration。 放在主程序入口類上, 主程序入口類(啟動類) 放在root 包下,這樣程序啟動時所有的相關配置,類都能掃描,查找到

@EnableAutoConfiguration:

  啟用 Spring 應用程序上下文的自動配置,試圖猜測和配置您可能需要的bean。自動配置類通常采用基於你的classpath 和已經定義的 beans 對象進行應用。被 @EnableAutoConfiguration 注解的類所在的包有特定的意義,並且作為默認配置使用。通常推薦將 @EnableAutoConfiguration 配置在 root 包下,這樣所有的子包、類都可以被查找到。

@ComponentScan:

  注解在類上,掃描標注了@Controller等注解的類,注冊為bean 。@ComponentScan 為  

@Configuration:

注解的類配置組件掃描指令。@ComponentScan 注解會自動掃描指定包下的全部標有 @Component注解的類,並注冊成bean,當然包括 @Component下的子注解@Service、@Repository、@Controller。

@RestController:

  @RestController 是一個結合了 @ResponseBody 和 @Controller 的注解(像:resetful接口調用時,返回的是json等就使用)

@PathVariable和@RequestParam

    都是將request里的參數的值綁定到contorl里的方法參數里的,區別在於,URL寫法不同。

    使用@RequestParam時,URL是這樣的:http://host:port/path?參數名=參數值

    使用@PathVariable時,URL是這樣的:http://host:port/path/參數值

當請求參數username不存在時會有異常發生,可以通過設置屬性required=false解決,例如: @RequestParam(value="username",required=false)

    不寫的時候也可以獲取到參數值,但是必須名稱對應。參數可以省略不寫


@RequestMapping: 和請求報文是做對應的

     1、value,指定請求的地址
     2、method ,請求方法類型 這個不寫的話,自適應:get或者post
     3、consumes ,請求的提交內容類型
     4、produces ,指定返回的內容類型 僅當request請求頭中的(Accept)類型中包含該指定類型才返回
     5、 params ,指定request中必須包含某些參數值
     6、headers ,指定request中必須包含指定的header值

     7、 name , 指定映射的名稱

     @RequestMapping(method = RequestMethod.GET)/@GetMapping

@Responsebody:

注解表示該方法的返回的結果直接寫入 HTTP 響應正文(ResponseBody)中,一般在異步獲取數據時使用,通常是在使用 @RequestMapping 后,返回值通常解析為跳轉路徑,加上@Responsebody 后返回結果不會被解析為跳轉路徑,而是直接寫入HTTP 響應正文中。(@RequestMapping(value = "/change",method = RequestMethod.POST,produces = "application/json;charset=utf-8"))

@EnablCaching

@EnableCaching注解是spring framework中的注解驅動的緩存管理功能。自spring版本3.1起加入了該注解。如果你使用了這個注解,那么你就不需要在XML文件中配置cache manager了。

@suppresswarnings:抑制警告

@Transactional:事務注解


免責聲明!

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



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