新聞中心
前言
在使用SpringBoot開(kāi)發(fā)中或者在求職面試中都會(huì)使用到很多注解或者問(wèn)到注解相關(guān)的知識(shí)。本文主要對(duì)一些常用的注解進(jìn)行了總結(jié),同時(shí)也會(huì)舉出具體例子,供大家學(xué)習(xí)和參考。

創(chuàng)新互聯(lián)公司是專業(yè)的丘北網(wǎng)站建設(shè)公司,丘北接單;提供成都做網(wǎng)站、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行丘北網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
注解一覽表
啟動(dòng)類以及配置類相關(guān)
@SpringBootApplication
解釋:
- @SpringBootApplication是組合注解。相當(dāng)于@Configuration、@EnableAutoConfiguration、@ComponentScan的組合。
- 用于標(biāo)記啟動(dòng)類,指出應(yīng)用入口。
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
@Configuration
解釋:
- 聲明當(dāng)前類為配置類。相當(dāng)于xml配置中的beans標(biāo)簽。
@Configuration
public class MyConfig {
@Bean
public MyBean myBean() {
return new MyBean();
}
}
@EnableAutoConfiguration
解釋:
- 開(kāi)啟SpringBoot自動(dòng)裝配功能。
@SpringBootApplication
@EnableAutoConfiguration
public class MyApplication {
// ...
}
@ComponentScan
解釋:
- 配置SpringBoot掃描包路徑。
@SpringBootApplication
@ComponentScan("com.example")
public class MyApplication {
// ...
}
控制層相關(guān)
@RestController
解釋:
- @RestController注解用于定義控制器類,將其返回的結(jié)果自動(dòng)轉(zhuǎn)換為JSON格式
@RestController
public class UserController {
@GetMapping("/users")
public List getAllUsers() {
// 返回所有用戶列表的邏輯
}
}
@RequestMapping
解釋:
- 用于映射HTTP請(qǐng)求到處理器上,指定處理器方法的URL路徑和HTTP請(qǐng)求方法。
@RestController
@RequestMapping("/users")
public class UserController {
@GetMapping("/{id}")
public User getUserById(@PathVariable("id") Long id) {
// 根據(jù)id獲取用戶的邏輯
}
}@GetMapping、@PostMapping、@DeleteMapping、@PutMapping
解釋:
- @GetMapping注解用于處理HTTP的GET請(qǐng)求,并將請(qǐng)求映射到相應(yīng)的處理器方法上。
- @PostMapping注解用于處理HTTP的POST請(qǐng)求,并將請(qǐng)求映射到相應(yīng)的處理器方法上。
- @DeleteMapping注解用于處理HTTP的DELETE請(qǐng)求,并將請(qǐng)求映射到相應(yīng)的處理器方法上。
- @PutMapping是Spring框架中用于處理HTTP的PUT請(qǐng)求的注解。PUT請(qǐng)求通常用于更新資源,即將新的數(shù)據(jù)替換掉指定的資源。
@RestController
@RequestMapping("/users")
public class UserController {
@GetMapping("/{id}")
public User getUserById(@PathVariable("id") Long id) {
// 根據(jù)id獲取用戶的邏輯
}
}
@RestController
@RequestMapping("/users")
public class UserController {
@PostMapping
public User createUser(@RequestBody User user) {
// 創(chuàng)建用戶的邏輯
}
}
@RestController
@RequestMapping("/users")
public class UserController {
@DeleteMapping("/{id}")
public void deleteUser(@PathVariable("id") Long id) {
// 刪除用戶的邏輯
}
}
@RestController
@RequestMapping("/users")
public class UserController {
@PutMapping("/{id}")
public User updateUser(@PathVariable("id") Long id, @RequestBody User user) {
// 更新用戶信息的邏輯
}
}
@RequestParam
解釋:
- @RequestParam注解用于獲取請(qǐng)求參數(shù)的值,并將其綁定到處理器方法的形參上。一般用于路徑中?傳參形式。
@RestController
@RequestMapping("/users")
public class UserController {
@GetMapping
public List getUsersByPage(@RequestParam("page") int page,
@RequestParam(value = "size", defaultValue = "10") int size) {
// 分頁(yè)查詢用戶列表的邏輯
}
}
@PathVariable
解釋:
- 用于獲取URL路徑中的變量值,并將其綁定到處理器方法的形參上。一般用于/傳參的形式。
@RestController
@RequestMapping("/users")
public class UserController {
@GetMapping("/{id}")
public User getUserById(@PathVariable("id") Long id) {
// 根據(jù)id獲取用戶的邏輯
}
}
@RequestBody
解釋:
- 用于接收HTTP請(qǐng)求的請(qǐng)求體內(nèi)容,并將其轉(zhuǎn)化為對(duì)應(yīng)的Java對(duì)象或其他類型的參數(shù)。
@RestController
@RequestMapping("/users")
public class UserController {
@PostMapping
public User createUser(@RequestBody User user) {
// 創(chuàng)建用戶的邏輯
}
}
@Valid
解釋:
- @Valid用于開(kāi)啟數(shù)據(jù)驗(yàn)證功能,對(duì)方法參數(shù)進(jìn)行校驗(yàn),確保其滿足定義的驗(yàn)證規(guī)則
@RestController
@RequestMapping("/users")
public class UserController {
@PostMapping
public ResponseEntity createUser(@Valid @RequestBody User user) {
// 創(chuàng)建用戶的邏輯
return ResponseEntity.status(HttpStatus.CREATED).body(user);
}
} Bean管理相關(guān)
- @Autowired: 自動(dòng)裝配,用于自動(dòng)注入依賴的Bean實(shí)例。
- @Service: 用于標(biāo)識(shí)一個(gè)服務(wù)類,表示它是業(yè)務(wù)邏輯層的組件。
- @Repository: 用于標(biāo)識(shí)一個(gè)數(shù)據(jù)訪問(wèn)類,表示它是數(shù)據(jù)訪問(wèn)層的組件。
- @Component: 通用的Spring組件注解,用于標(biāo)識(shí)一個(gè)普通的Bean組件。
- @Value: 注入配置文件中的值到對(duì)應(yīng)的變量中。
異步和定時(shí)相關(guān)
@EnableScheduling、@Scheduled
解釋:
- @EnableScheduling:?jiǎn)?dòng)類添加@EnableScheduling開(kāi)啟任務(wù)調(diào)度功能。
- @Scheduled:定時(shí)任務(wù)注解,用于標(biāo)識(shí)定時(shí)任務(wù)的方法。
@SpringBootApplication
@EnableScheduling
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
@Component
public class MyScheduler {
@Scheduled(fixedRate = 5000)
public void myTask() {
// 每個(gè)5秒執(zhí)行一次的任務(wù)邏輯
}
}
@Component
public class MyScheduler {
@Scheduled(cron = "0 0 8 * * ?")
public void myTask() {
// 每天早上8點(diǎn)執(zhí)行的任務(wù)邏輯
}
}
@EnableAsync、@Async
解釋:
- @EnableAsync:?jiǎn)?dòng)類添加,開(kāi)啟異步任務(wù)。
- @Async:標(biāo)識(shí)異步任務(wù)方法。
@SpringBootApplication
@EnableAsync
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
@Service
public class MyService {
@Async
public CompletableFuture asyncTask() {
// 異步執(zhí)行的任務(wù)邏輯
// 返回一個(gè)CompletableFuture以支持異步結(jié)果的處理
}
}
緩存和事務(wù)管理
解釋:
- @EnableCaching: 開(kāi)啟Spring的緩存支持,用于緩存方法的結(jié)果,提高性能。
- @Transactional: 提供聲明式事務(wù)管理,用于標(biāo)識(shí)需要使用事務(wù)的方法或類。
- @EnableTransactionManagement: 開(kāi)啟事務(wù)管理支持,用于啟用Spring的聲明式事務(wù)管理功能
@SpringBootApplication
@EnableCaching
@EnableTransactionManagement
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
@Service
public class MyService {
@Transactional
public void performTransaction() {
// 執(zhí)行數(shù)據(jù)庫(kù)操作等需要事務(wù)管理的邏輯
}
}
異常處理相關(guān)
@RestControllerAdvice、@ExceptionHandler
- @RestControllerAdvice:結(jié)合了@ControllerAdvice和@ResponseBody注解的功能。它用于定義全局的異常處理和統(tǒng)一的響應(yīng)處理。
- @ExceptionHandler:指定類型的異常進(jìn)行統(tǒng)一處理。
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity handleException(Exception e) {
// 異常處理邏輯,可以根據(jù)實(shí)際需求進(jìn)行對(duì)異常的處理和返回相應(yīng)的錯(cuò)誤信息
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Internal Server Error");
}
}
寫(xiě)在最后
有關(guān)于SpringBoot常用注解到此就結(jié)束了。
分享題目:28個(gè)SpringBoot項(xiàng)目中常用注解,日常開(kāi)發(fā)、求職面試不再懵圈
文章轉(zhuǎn)載:http://www.dlmjj.cn/article/dhegcdo.html


咨詢
建站咨詢
