SpringBoot 常用注解

@Bean 注解

Indicates that a method produces a bean to be managed
by the Spring container.
該注解用于方法上,使用該注解的方法將會生成一個實體對象,該實體對象將統一由Spring容器管理

這個注解屬性的名稱和語義是有意與Spring xml配置模式中的<bean/>元素類似

@Bean注解返回的實體對象名稱默認使用被@Bean注解的方法名稱

       @Bean  ----①
       //@Bean("helloBean")  ----②
       public MyBean myBean() {
           // instantiate and configure MyBean obj
           return obj;
       }

如上①注釋,默認情況下,返回的實體對象名稱為myBean,當然我們可以使用②注釋的方法來給實體類指定一個別名(特別注意,@Bean是允許有多個別名存在)

// bean 可用作 'b1' 和'b2', 但不可用作'myBean'       
@Bean({"b1", "b2"}) 
public MyBean myBean() {
     // instantiate and configure MyBean obj
     return obj;
}
  1. @Bean 注解不提供Scope、depends-on、primary、lazy屬性,相反的,@Bean屬性應該與上述提到的屬性配合使用,例如
@Bean
@Scope("prototype")
public MyBean myBean() {
     // instantiate and configure MyBean obj
     return obj;
}

在@Configuration中聲明@Bean屬性

通常情況下,攜帶@Bean注解的方法在攜帶@Configuration注解的類中聲明,在這種情況下,相同的類中,不同的@Bean方法可以直接相互調用.作為代價@Configuration類及其工廠方法不能聲明為私有.

   @Configuration
   public class AppConfig {
  
       @Bean
       public FooService fooService() {
           return new FooService(fooRepository());
       }
  
       @Bean
       public FooRepository fooRepository() {
           return new JdbcFooRepository(dataSource());
       }
       // ...
   }

@Bean的Lite模式

@Bean 注解并不一定非要在注解的了@Configuration的類中使用,你也可以在@Component類中或者甚至在普通的java類中使用@Bean注解,在這種情況下,@Bean注解將以所謂的Lite模式被處理

@Configuration

該注解表示該類為Spring容器的配置類

@EnableAutoConfiguration

開啟SpringBoot的自動配置功能,它主要告訴springboot根據你配置的依賴進行自動配置,比如你配置了spring-boot-started-web,springboot假設你正在開發一個web應用,并進行一些web相關的配置.

@ComponentScan

掃描SpringBoot根Package下所有的Bean.

@RestController[2018年1月2日22:27:01]

返回文本形式的數據(json,xml)
@RestController相當于在@Controller注解的類中的每個方法加上@ResponseBody注解

@RequestMapping(value="/xxx",method = RequestMethod.DELETE)

Url路徑映射
value:表示實際請求的URL地址
method:請求方法,可以是POST/GET/DELETE/PUT等

@PathVariable

url傳參,被該@PathVariable注解的參數將被填充到@RequestMapping中的Url地址的通配符中。

@ControllerAdvice

被@ControllerAdvice注解的類
內部被@ExceptionHandler、@InitBinder、@ModelAttribute注解的方法
將被應用到所有的被@RequestMapping注解的方法

@ControllerAdvice 一般作為全局異常處理的切面類,它可以指定掃描范圍,返回值定義:
如果直接返回Model類,需要使用@ResponseBody 進行json轉化
如果返回的是String,表示跳轉到某個View
如果返回的是ModelAndView則相當于 Model+@ResponseBody

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容