成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

28個SpringBoot項目中常用注解,日常開發、求職面試不再懵圈

開發 項目管理
@SpringBootApplication是組合注解。相當于@Configuration、@EnableAutoConfiguration、@ComponentScan的組合。

前言

在使用SpringBoot開發中或者在求職面試中都會使用到很多注解或者問到注解相關的知識。本文主要對一些常用的注解進行了總結,同時也會舉出具體例子,供大家學習和參考。

注解一覽表

啟動類以及配置類相關

@SpringBootApplication

解釋:

  • @SpringBootApplication是組合注解。相當于@Configuration、@EnableAutoConfiguration、@ComponentScan的組合。
  • 用于標記啟動類,指出應用入口
@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

@Configuration

解釋:

  • 聲明當前類為配置類。相當于xml配置中的beans標簽。
@Configuration
public class MyConfig {
    @Bean
    public MyBean myBean() {
        return new MyBean();
    }
}

@EnableAutoConfiguration

解釋:

  • 開啟SpringBoot自動裝配功能。
@SpringBootApplication
@EnableAutoConfiguration
public class MyApplication {
    // ...
}

@ComponentScan

解釋:

  • 配置SpringBoot掃描包路徑。
@SpringBootApplication
@ComponentScan("com.example")
public class MyApplication {
    // ...
}

控制層相關

@RestController

解釋:

  • @RestController注解用于定義控制器類,將其返回的結果自動轉換為JSON格式
@RestController
public class UserController {
    @GetMapping("/users")
    public List<User> getAllUsers() {
        // 返回所有用戶列表的邏輯
    }
}

@RequestMapping

解釋:

  • 用于映射HTTP請求到處理器上,指定處理器方法的URL路徑和HTTP請求方法。
@RestController
@RequestMapping("/users")
public class UserController {
    @GetMapping("/{id}")
    public User getUserById(@PathVariable("id") Long id) {
        // 根據id獲取用戶的邏輯
    }
}

@GetMapping、@PostMapping、@DeleteMapping、@PutMapping

解釋:

  • @GetMapping注解用于處理HTTP的GET請求,并將請求映射到相應的處理器方法上。
  • @PostMapping注解用于處理HTTP的POST請求,并將請求映射到相應的處理器方法上。
  • @DeleteMapping注解用于處理HTTP的DELETE請求,并將請求映射到相應的處理器方法上。
  • @PutMapping是Spring框架中用于處理HTTP的PUT請求的注解。PUT請求通常用于更新資源,即將新的數據替換掉指定的資源。
@RestController
@RequestMapping("/users")
public class UserController {
    @GetMapping("/{id}")
    public User getUserById(@PathVariable("id") Long id) {
        // 根據id獲取用戶的邏輯
    }
}


@RestController
@RequestMapping("/users")
public class UserController {
    @PostMapping
    public User createUser(@RequestBody User user) {
        // 創建用戶的邏輯
    }
}


@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注解用于獲取請求參數的值,并將其綁定到處理器方法的形參上。一般用于路徑中?傳參形式。
@RestController
@RequestMapping("/users")
public class UserController {
    @GetMapping
    public List<User> getUsersByPage(@RequestParam("page") int page, 
                                     @RequestParam(value = "size", defaultValue = "10") int size) {
        // 分頁查詢用戶列表的邏輯
    }
}

@PathVariable

解釋:

  • 用于獲取URL路徑中的變量值,并將其綁定到處理器方法的形參上。一般用于/傳參的形式。
@RestController
@RequestMapping("/users")
public class UserController {
    @GetMapping("/{id}")
    public User getUserById(@PathVariable("id") Long id) {
        // 根據id獲取用戶的邏輯
    }
}

@RequestBody

解釋:

  • 用于接收HTTP請求的請求體內容,并將其轉化為對應的Java對象或其他類型的參數。
@RestController
@RequestMapping("/users")
public class UserController {
    @PostMapping
    public User createUser(@RequestBody User user) {
        // 創建用戶的邏輯
    }
}

@Valid

解釋:

  • @Valid用于開啟數據驗證功能,對方法參數進行校驗,確保其滿足定義的驗證規則
@RestController
@RequestMapping("/users")
public class UserController {
    @PostMapping
    public ResponseEntity<User> createUser(@Valid @RequestBody User user) {
        // 創建用戶的邏輯
        return ResponseEntity.status(HttpStatus.CREATED).body(user);
    }
}

Bean管理相關

  • @Autowired: 自動裝配,用于自動注入依賴的Bean實例。
  • @Service: 用于標識一個服務類,表示它是業務邏輯層的組件。
  • @Repository: 用于標識一個數據訪問類,表示它是數據訪問層的組件。
  • @Component: 通用的Spring組件注解,用于標識一個普通的Bean組件。
  • @Value: 注入配置文件中的值到對應的變量中。

異步和定時相關

@EnableScheduling、@Scheduled

解釋:

  • @EnableScheduling:啟動類添加@EnableScheduling開啟任務調度功能。
  • @Scheduled:定時任務注解,用于標識定時任務的方法。
@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() {
        // 每個5秒執行一次的任務邏輯
    }
}


@Component
public class MyScheduler {
    @Scheduled(cron = "0 0 8 * * ?")
    public void myTask() {
        // 每天早上8點執行的任務邏輯
    }
}

@EnableAsync、@Async

解釋:

  • @EnableAsync:啟動類添加,開啟異步任務。
  • @Async:標識異步任務方法。
@SpringBootApplication
@EnableAsync
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }
}


@Service
public class MyService {
    @Async
    public CompletableFuture<String> asyncTask() {
        // 異步執行的任務邏輯
        // 返回一個CompletableFuture以支持異步結果的處理
    }
}

緩存和事務管理

解釋:

  • @EnableCaching: 開啟Spring的緩存支持,用于緩存方法的結果,提高性能。
  • @Transactional: 提供聲明式事務管理,用于標識需要使用事務的方法或類。
  • @EnableTransactionManagement: 開啟事務管理支持,用于啟用Spring的聲明式事務管理功能
@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() {
        // 執行數據庫操作等需要事務管理的邏輯
    }
}

異常處理相關

@RestControllerAdvice、@ExceptionHandler

  • @RestControllerAdvice:結合了@ControllerAdvice和@ResponseBody注解的功能。它用于定義全局的異常處理和統一的響應處理。
  • @ExceptionHandler:指定類型的異常進行統一處理。
@RestControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(Exception.class)
    public ResponseEntity<String> handleException(Exception e) {
        // 異常處理邏輯,可以根據實際需求進行對異常的處理和返回相應的錯誤信息
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Internal Server Error");
    }
}

寫在最后

有關于SpringBoot常用注解到此就結束了。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2025-01-15 09:00:20

2024-08-02 17:19:36

2017-12-06 09:00:14

2020-04-17 20:58:34

MySQLSQL優化

2017-11-27 11:25:36

MySQL優化數據

2023-05-17 08:34:27

開發技術應用

2024-01-30 10:11:00

SpringBoot項目開發

2019-11-21 10:40:54

MySQLMySQL優化MySQL索引

2023-12-14 17:24:20

Linux開源項目

2014-05-04 16:39:49

開源項目開源產品

2022-06-26 09:56:50

HttpUtil工具類模式

2017-09-06 12:42:45

AndroidGradle開發技巧

2017-01-10 19:06:39

Android日常開發技術經驗

2021-08-03 15:26:56

代碼智能阿里云

2024-07-03 13:03:30

Spring注解項目

2020-09-24 10:00:50

SpringBoo

2022-12-19 08:30:51

ViteWebpack

2023-11-15 14:34:05

MySQL悲觀鎖

2022-03-17 08:34:47

TypeScript項目類型

2023-08-10 17:23:39

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久蜜桃一区二区人 | www.色53色.com| 黄色网址大全在线观看 | 国产1区2区3区 | 成人日韩精品 | 韩日在线视频 | 久久99久久久久 | 国产91综合一区在线观看 | 亚洲精品美女 | 欧美精品在线视频 | 亚洲三区在线播放 | 日韩色在线| 日本精品一区二区三区在线观看视频 | 成人九色| 欧美色综合天天久久综合精品 | 日本久久福利 | 男人的天堂中文字幕 | 狠狠做深爱婷婷综合一区 | 欧美aⅴ片 | 国产人成在线观看 | 日韩2020狼一二三 | 日韩三级一区 | 成人av播放| 亚洲一区视频在线 | 亚洲国产精品激情在线观看 | av黄色片在线观看 | 国产精品美女久久久久aⅴ国产馆 | 一区在线视频 | 精品免费视频 | 日本久草视频 | 国产在线一区二区 | 在线免费观看日本 | 视频在线亚洲 | 九久久 | 中文字幕一区二区三区四区五区 | 91麻豆精品国产91久久久更新资源速度超快 | 99riav3国产精品视频 | 亚洲综合色网站 | 少妇无套高潮一二三区 | 欧美精品三区 | 久久久久久精 |