javascript
Spring Boot 常用注解
@SpringBootApplication
查看源碼可發現,@SpringBootApplication是一個復合注解,包含了@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan這三個注解
@SpringBootConfiguration 注解,繼承@Configuration注解,主要用于加載配置文件
@SpringBootConfiguration繼承自@Configuration,二者功能也一致,標注當前類是配置類, 并會將當前類內聲明的一個或多個以@Bean注解標記的方法的實例納入到spring容器中,并且實例名就是方法名。
@EnableAutoConfiguration 注解,開啟自動配置功能
@EnableAutoConfiguration可以幫助SpringBoot應用將所有符合條件的@Configuration配置都加載到當前SpringBoot創建并使用的IoC容器。借助于Spring框架原有的一個工具類:SpringFactoriesLoader的支持,@EnableAutoConfiguration可以智能的自動配置功效才得以大功告成
@ComponentScan 注解,主要用于組件掃描和自動裝配
@ComponentScan的功能其實就是自動掃描并加載符合條件的組件或bean定義,最終將這些bean定義加載到容器中。我們可以通過basePackages等屬性指定@ComponentScan自動掃描的范圍,如果不指定,則默認Spring框架實現從聲明@ComponentScan所在類的package進行掃描,默認情況下是不指定的,所以SpringBoot的啟動類最好放在root package下。
@Controller
控制器,處理http請求。
@RestController 復合注解
@ResponseBody+@Controller合在一起的作用,RestController使用的效果是將方法返回的對象直接在瀏覽器上展示成json格式.
@RequestBody
通過HttpMessageConverter讀取Request Body并反序列化為Object(泛指)對象
@RequestMapping
@RequestMapping 是 Spring Web 應用程序中最常被用到的注解之一。這個注解會將 HTTP 請求映射到 MVC 和 REST 控制器的處理方法上
@GetMapping用于將HTTP get請求映射到特定處理程序的方法注解
@PostMapping用于將HTTP post請求映射到特定處理程序的方法注解
@PathVariable:獲取url中的數據
@RequestParam:獲取請求參數的值
@Repository
DAO層注解,DAO層中接口繼承JpaRepository<T,ID extends Serializable>,需要在build.gradle中引入相關jpa的一個jar自動加載。
@Service
- @Service是@Component注解的一個特例,作用在類上
- @Service注解作用域默認為單例
- 使用注解配置和類路徑掃描時,被@Service注解標注的類會被Spring掃描并注冊為Bean
- @Service用于標注服務層組件,表示定義一個bean
- @Service使用時沒有傳參數,Bean名稱默認為當前類的類名,首字母小寫
- @Service(“serviceBeanId”)或@Service(value=”serviceBeanId”)使用時傳參數,使用value作為Bean名字
@Scope作用域注解
@Scope作用在類上和方法上,用來配置 spring bean 的作用域,它標識 bean 的作用域
@Entity實體類注解
@Table(name ="數據庫表名"),這個注解也注釋在實體類上,對應數據庫中相應的表。
@Id、@Column注解用于標注實體類中的字段,pk字段標注為@Id,其余@Column。
@Bean產生一個bean的方法
@Bean明確地指示了一種方法,產生一個bean的方法,并且交給Spring容器管理。支持別名@Bean("xx-name")
@Autowired 自動導入
- @Autowired注解作用在構造函數、方法、方法參數、類字段以及注解上
- @Autowired注解可以實現Bean的自動注入
@Component
把普通pojo實例化到spring容器中,相當于配置文件中的
雖然有了@Autowired,但是我們還是要寫一堆bean的配置文件,相當麻煩,而@Component就是告訴spring,我是pojo類,把我注冊到容器中吧,spring會自動提取相關信息。那么我們就不用寫麻煩的xml配置文件了
@Import 導入額外的配置信息
功能類似XML配置的,用來導入配置類,可以導入帶有@Configuration注解的配置類或實現了ImportSelector/ImportBeanDefinitionRegistrar。
事務注解 @Transactional
在Spring中,事務有兩種實現方式,分別是編程式事務管理和聲明式事務管理兩種方式
- 編程式事務管理: 編程式事務管理使用TransactionTemplate或者直接使用底層的PlatformTransactionManager。對于編程式事務管理,spring推薦使用TransactionTemplate。
- 聲明式事務管理: 建立在AOP之上的。其本質是對方法前后進行攔截,然后在目標方法開始之前創建或者加入一個事務,在執行完目標方法之后根據執行情況提交或者回滾事務,通過@Transactional就可以進行事務操作,更快捷而且簡單。推薦使用
總結
以上是生活随笔為你收集整理的Spring Boot 常用注解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 数据分析三剑客之 NumP
- 下一篇: 兴业银行信用卡看电影 淘票票满20元立减