AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁(yè) > 科技  > 軟件

28個(gè)SpringBoot項(xiàng)目中常用注解,日常開(kāi)發(fā)、求職面試不再懵圈

來(lái)源: 責(zé)編: 時(shí)間:2023-08-05 11:44:27 4213觀看
導(dǎo)讀前言在使用SpringBoot開(kāi)發(fā)中或者在求職面試中都會(huì)使用到很多注解或者問(wèn)到注解相關(guān)的知識(shí)。本文主要對(duì)一些常用的注解進(jìn)行了總結(jié),同時(shí)也會(huì)舉出具體例子,供大家學(xué)習(xí)和參考。注解一覽表啟動(dòng)類(lèi)以及配置類(lèi)相關(guān)@SpringBootApp

前言

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

注解一覽表

ucl28資訊網(wǎng)——每日最新資訊28at.com

ucl28資訊網(wǎng)——每日最新資訊28at.com

啟動(dòng)類(lèi)以及配置類(lèi)相關(guān)

@SpringBootApplication

解釋?zhuān)?/span>ucl28資訊網(wǎng)——每日最新資訊28at.com

  • @SpringBootApplication是組合注解。相當(dāng)于@Configuration、@EnableAutoConfiguration、@ComponentScan的組合。
  • 用于標(biāo)記啟動(dòng)類(lèi),指出應(yīng)用入口
@SpringBootApplicationpublic class MyApplication {    public static void main(String[] args) {        SpringApplication.run(MyApplication.class, args);    }}

@Configuration

解釋?zhuān)?/span>ucl28資訊網(wǎng)——每日最新資訊28at.com

  • 聲明當(dāng)前類(lèi)為配置類(lèi)。相當(dāng)于xml配置中的beans標(biāo)簽。
@Configurationpublic class MyConfig {    @Bean    public MyBean myBean() {        return new MyBean();    }}

@EnableAutoConfiguration

解釋?zhuān)?/span>ucl28資訊網(wǎng)——每日最新資訊28at.com

  • 開(kāi)啟SpringBoot自動(dòng)裝配功能。
@SpringBootApplication@EnableAutoConfigurationpublic class MyApplication {    // ...}

@ComponentScan

解釋?zhuān)?/span>ucl28資訊網(wǎng)——每日最新資訊28at.com

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

控制層相關(guān)

@RestController

解釋?zhuān)?/span>ucl28資訊網(wǎng)——每日最新資訊28at.com

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

@RequestMapping

解釋?zhuān)?/span>ucl28資訊網(wǎng)——每日最新資訊28at.com

  • 用于映射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、@PutMappingucl28資訊網(wǎng)——每日最新資訊28at.com

解釋?zhuān)?/span>ucl28資訊網(wǎng)——每日最新資訊28at.com

  • @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

解釋?zhuān)?/span>ucl28資訊網(wǎng)——每日最新資訊28at.com

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

@PathVariable

解釋?zhuān)?/span>ucl28資訊網(wǎng)——每日最新資訊28at.com

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

@RequestBody

解釋?zhuān)?/span>ucl28資訊網(wǎng)——每日最新資訊28at.com

  • 用于接收HTTP請(qǐng)求的請(qǐng)求體內(nèi)容,并將其轉(zhuǎn)化為對(duì)應(yīng)的Java對(duì)象或其他類(lèi)型的參數(shù)。
@RestController@RequestMapping("/users")public class UserController {    @PostMapping    public User createUser(@RequestBody User user) {        // 創(chuàng)建用戶的邏輯    }}

@Valid

解釋?zhuān)?/span>ucl28資訊網(wǎng)——每日最新資訊28at.com

  • @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<User> createUser(@Valid @RequestBody User user) {        // 創(chuàng)建用戶的邏輯        return ResponseEntity.status(HttpStatus.CREATED).body(user);    }}

Bean管理相關(guān)ucl28資訊網(wǎng)——每日最新資訊28at.com

  • @Autowired: 自動(dòng)裝配,用于自動(dòng)注入依賴(lài)的Bean實(shí)例。
  • @Service: 用于標(biāo)識(shí)一個(gè)服務(wù)類(lèi),表示它是業(yè)務(wù)邏輯層的組件。
  • @Repository: 用于標(biāo)識(shí)一個(gè)數(shù)據(jù)訪問(wèn)類(lèi),表示它是數(shù)據(jù)訪問(wèn)層的組件。
  • @Component: 通用的Spring組件注解,用于標(biāo)識(shí)一個(gè)普通的Bean組件。
  • @Value: 注入配置文件中的值到對(duì)應(yīng)的變量中。

異步和定時(shí)相關(guān)

@EnableScheduling、@Scheduled

解釋?zhuān)?/span>ucl28資訊網(wǎng)——每日最新資訊28at.com

  • @EnableScheduling:?jiǎn)?dòng)類(lèi)添加@EnableScheduling開(kāi)啟任務(wù)調(diào)度功能。
  • @Scheduled:定時(shí)任務(wù)注解,用于標(biāo)識(shí)定時(shí)任務(wù)的方法。
@SpringBootApplication@EnableSchedulingpublic class MyApp {    public static void main(String[] args) {        SpringApplication.run(MyApp.class, args);    }}@Componentpublic class MyScheduler {    @Scheduled(fixedRate = 5000)    public void myTask() {        // 每個(gè)5秒執(zhí)行一次的任務(wù)邏輯    }}@Componentpublic class MyScheduler {    @Scheduled(cron = "0 0 8 * * ?")    public void myTask() {        // 每天早上8點(diǎn)執(zhí)行的任務(wù)邏輯    }}

@EnableAsync、@Async

解釋?zhuān)?/span>ucl28資訊網(wǎng)——每日最新資訊28at.com

  • @EnableAsync:?jiǎn)?dòng)類(lèi)添加,開(kāi)啟異步任務(wù)。
  • @Async:標(biāo)識(shí)異步任務(wù)方法。
@SpringBootApplication@EnableAsyncpublic class MyApp {    public static void main(String[] args) {        SpringApplication.run(MyApp.class, args);    }}@Servicepublic class MyService {    @Async    public CompletableFuture<String> asyncTask() {        // 異步執(zhí)行的任務(wù)邏輯        // 返回一個(gè)CompletableFuture以支持異步結(jié)果的處理    }}

緩存和事務(wù)管理

解釋?zhuān)?/span>ucl28資訊網(wǎng)——每日最新資訊28at.com

  • @EnableCaching: 開(kāi)啟Spring的緩存支持,用于緩存方法的結(jié)果,提高性能。
  • @Transactional: 提供聲明式事務(wù)管理,用于標(biāo)識(shí)需要使用事務(wù)的方法或類(lèi)。
  • @EnableTransactionManagement: 開(kāi)啟事務(wù)管理支持,用于啟用Spring的聲明式事務(wù)管理功能
@SpringBootApplication@EnableCaching@EnableTransactionManagementpublic class MyApp {    public static void main(String[] args) {        SpringApplication.run(MyApp.class, args);    }}@Servicepublic class MyService {    @Transactional    public void performTransaction() {        // 執(zhí)行數(shù)據(jù)庫(kù)操作等需要事務(wù)管理的邏輯    }}

異常處理相關(guān)

@RestControllerAdvice、@ExceptionHandler

  • @RestControllerAdvice:結(jié)合了@ControllerAdvice和@ResponseBody注解的功能。它用于定義全局的異常處理和統(tǒng)一的響應(yīng)處理。
  • @ExceptionHandler:指定類(lèi)型的異常進(jìn)行統(tǒng)一處理。
@RestControllerAdvicepublic class GlobalExceptionHandler {    @ExceptionHandler(Exception.class)    public ResponseEntity<String> 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é)束了。ucl28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-74-0.html28個(gè)SpringBoot項(xiàng)目中常用注解,日常開(kāi)發(fā)、求職面試不再懵圈

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 三言兩語(yǔ)說(shuō)透設(shè)計(jì)模式的藝術(shù)-簡(jiǎn)單工廠模式

下一篇: K6:面向開(kāi)發(fā)人員的現(xiàn)代負(fù)載測(cè)試工具

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
Top