springcloud中常用的註解
@SpringBootApplication是springboot啓動類,包括三個註解,他們的作用分別是:
@Configuration:表示將該類作用springboot配置文件類
@EnableAutoConfiguration:表示程序啓動時,自動加載springboot默認的配置
@ComponentScan:表示程序啓動是,自動掃描當前包及子包下所有類
@EnableDiscoveryClient && @EnableEurekaClient
@EnableDiscoveryClient基於spring-cloud-commons,@EnableEurekaClient基於spring-cloud-netflix,如果選用的註冊中心是eureka,那麼就推薦@EnableEurekaClient,如果是其他的註冊中心,那麼推薦使用@EnableDiscoveryClient。
@ComponentScan && @Configuration && @EnableAutoConfiguration
@ComponentScan 如果不設置basePackage的話 默認會掃描包的所有類,所以最好還是寫上basePackage (@componentScan({" ... "}),減少加載時間。默認掃描**/*.class路徑 比如這個註解在com.wuhulala 下面 ,那麼會掃描這個包下的所有類還有子包的所有類,比如com.wuhulala.service包的應用
@Configuration 表示這個類中定義了Bean,會把這個類中bean加載到spring容器中
@EnableAutoConfiguration表示 會在你開啓某些功能的時候自動配置,這個註解告訴Spring Boot根據添加的jar依賴猜測你想如何配置Spring。由於spring-boot-starter-web添加了Tomcat和Spring MVC,所以auto-configuration將假定你正在開發一個web應用,並對Spring進行相應地設置。
@Mapper && @MapperScan
Mapper類上面添加註解@Mapper,這種方式要求每一個mapper類都需要添加此註解
使用@MapperScan可以指定要掃描的Mapper類的包的路徑(@MapperScan("com.demo.*.mapper") || @MapperScan("com.test.*.mapper", "com.demo.*.mapper"))
@EnableTransactionManagement && @Transactional
Spring Boot 使用事務非常簡單,首先使用註解 @EnableTransactionManagement (啓註解事務管理,等同於xml配置方式的 <tx:annotation-driven />)開啓事務支持後,然後在訪問數據庫的Service方法上添加註解 @Transactional 便可。
@Async && @EnableAsync
@EnableAsync註解的意思是可以異步執行,就是開啓多線程的意思。可以標註在方法、類上。
爲了讓@Async註解能夠生效,需要在Spring Boot的主程序中配置@EnableAsync
@Async所修飾的函數不要定義爲static類型,這樣異步調用不會生效
@Bean && @Configuration
@Bean標註在方法上(返回某個實例的方法),等價於spring的xml配置文件中的<bean>,作用爲:註冊bean對象
@Configuration標註在類上,相當於把該類作爲spring的xml配置文件中的<beans>,作用爲:配置spring容器(應用上下文)
@GetMapping && @PostMapping
Spring4.3中引進了{@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping},來幫助簡化常用的HTTP方法的映射,並更好地表達被註解方法的語義。
@GetMapping是一個組合註解,是@RequestMapping(method = RequestMethod.GET)的縮寫。該註解將HTTP Get 映射到 特定的處理方法上。
@GetMapping是一個組合註解,是@RequestMapping(method = RequestMethod.POST)的縮寫。該註解將HTTP Post映射到 特定的處理方法上。
@LoadBalanced
Spring Cloud的commons模塊提供了一個@LoadBalanced註解,方便我們對RestTemplate添加一個LoadBalancerClient,以實現客戶端負載均衡。通過源碼可以發現這是一個標記註解,我們可以通過ribbon實現客戶端的負載均衡功能。