目錄
- 前言
- 1、Mybatis常用註解
- 2、SpringMVC常用註解
- 3、Spring常用註解
- 1. IoC註解
- 2. DI註解
- 3. 事務註解
- 4、SpringBoot常用註解
- 5、Lombok註解
前言
OOP(物件導向程式設計),IoC(控制反轉),AOP(面向切面程式設計)都是一種程式設計思想,DI(依賴注入)是IoC的具體實現。
1、Mybatis常用註解
- @Select:查詢操作。
- @Insert:新增操作。
- @Update:修改操作。
- @Delete:刪除操作。
- @Mapper:生成Mapper介面的代理物件(實現類物件),放到ioc容器中。
- @MapperScan: 不用在每個Mapper介面上@Mapper,寫這個就行了,指定mapper介面的包名,為包下所有的Mapper介面生成對應的代理物件,放到ioc容器中。
2、SpringMVC常用註解
- @RequestMapping:放在方法上:指定介面的訪問路徑,根據id查詢/刪除通常要用。通常,放在類上:指定介面的模組名,通常是模組名加s,比如/users。
- @RequestParam:當接收key=value格式的資料,前端引數名和後端形參名匹配不上,用這個註解來給形參起別名,讓別名和前端引數名一樣。
- @RequestBody:接收post請求傳送的json字串,使用這個註解。
- @ResponseBody:返回一個字串,如果介面返回一個字串,就把這個字串原封不動返回,如果介面返回一個物件,該註解將物件轉成json字串,然後返回,該註解需要jackson依賴的支援。
- @PathVariable:用來接收路徑引數,比如,請求路徑是這樣的:/users/1,後端配置訪問路徑這樣配 /users/{id} ,這個id要和形參名一樣,不一樣,用這個註解給形參起別名,讓別名和id一樣。
- @GetMapping:get請求 查詢操作使用。
- @PostMapping:post請求 新增/新增操作使用。
- @PutMapping:put請求 修改/更新操作使用。
- @DeleteMapping:delete請求 刪除操作使用。
上面四個是rest風格的四個註解,通常是這麼個約定,具體看公司怎麼要求了,絕大部分企業開發還是遵守這個約定。
3、Spring常用註解
1. IoC註解
- @Controller:放在controller上,建立controller物件,放到ioc容器中。
- @Service:放在service實現類上,建立service物件,放到ioc容器中。
- @Repository:放在mapper實現類上,建立mapper物件,放到ioc容器中。
- @Component:放在controller,service,mapper之外的類上,建立普通物件,放到ioc容器中。
- @Configuration+@Bean:@Configuration放在類上,表示該類是一個配置類,作用和xml配置檔案一樣,@Bean,放在方法上,表示將方法返回的物件放到ioc容器中。
- @RestController=@Controller+@ResponseBody,這樣不用在每個方法上加@ResponseBody了,後端通常返回的是一個json字串,比如:
2. DI註解
- @Value 注入基本型別,String字串。
- @Autowired:注入自定義物件,第三方物件。
3. 事務註解
@Transactional:通常放在service層方法上,表示對該方法新增事務,執行方法前,自動開啟事務,正常執行提交事務,出現異常回滾事務,注意:當方法丟擲執行時異常或錯誤,預設回滾事務;當方法丟擲編譯時異常,預設不回滾事務,此時可能導致事務失效,可以透過rollbackFor屬性,指定方法丟擲哪些異常也回滾事務嗎,當trycatch對異常進行捕獲了,相當於沒有丟擲異常,不會回滾事務!
4、SpringBoot常用註解
@SpringBootApplication:放在類上,表示這是springboot專案的啟動類/引導類,是springboot專案的入口。
@SpringBootTest:放在類上,表示這是一個單元測試類。
5、Lombok註解
- @NoArgsConstructor:生成無參構造器。
- @AllArgsConstructor:生成全參構造器。
- @Getter:生成get方法。
- @Setter:生成set方法。
- @ToString:生成toString方法。
- @EqualsAndHashCode:生成equals方法和hashCode方法。
- @Data:生成get、set、toString、equals、hashCode等方法 @Data=@Getter+@Setter+@toString+@Equals+@hashCode。
總結:用的時候,用@NoArgsConstructor+@AllArgsConstructor+@Data就夠了。