iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
Mobile Development

Spring Boot & Android Studio教學系列 第 4

了解Spring Boot註解:簡單指南

  • 分享至 

  • xImage
  •  

Controller

@Controller

用於標記一個類作為控制器(Controller)。在Spring MVC中,控制器用於處理用戶端的HTTP請求並返回相應的數據

@ResponseBody

方法的返回值不再被視圖解析器處理,而是直接寫入HTTP響應的正文中。這意味著方法返回的數據將作為原始的數據格式(例如JSON、XML等)返回給用戶端。

@Controller
@RequestMapping("/api/v1")
public class HelloWorld {
    //方法1
    @GetMapping("/hello1")
    public ResponseEntity<String> hello1(){
        return ResponseEntity.ok("hello1");
    }
    //方法2
    @GetMapping("/hello2")
    @ResponseBody
    public String hello2(){
        return "hello2";
    }
    //錯誤寫法
    @GetMapping("/hello3")
    public String hello3(){
        return "hello3";
    }
}

若使用@Controller沒有配合@ResponseBody使用或是ResponseEntity,Spring會認為這個字符串是視圖名稱(如:"hello3.html"或"hello3.jsp"),因沒找到視而報錯錯

@RestController

@Controller與@ResponseBody結合(基本上都用他)

@RequestMapping

用於指定當用戶端發送特定的HTTP請求時,應該調用哪個方法來處理該請求。

請求標籤

@GetMapping

表GET請求。

@PostMapping

表POST請求。

@PutMapping

表PUT請求。

@PatchMapping

表示PATCH請求。

@DeleteMapping

表DELETE請求。

Service

@Service

負責處理業務邏輯的執行與調用數據訪問層(如JPA Repositories或DAOs)來執行與數據庫交互的操作。

Repository

@Repository(interface)

負責處理與數據庫或其他永久存儲層進行交互的操作。通常,數據訪問層包含了與數據庫交互的CRUD操作(創建Create、讀取Read、更新Update和刪除Delete),以及其他與數據存取相關的任務。

其他

@Component

用於標記任何普通的Java類,讓Spring容器能夠自動掃描和識別這些組件,並將它們納入應用程序的上下文中。

@Configuration

標註當前類別是配置類,通常類別內放置有關@Bean標籤內容。

@Bean

自定義物件提供的方式,透過此標籤此實例會被加入spring 容器中,通常放置於 @Configuration標籤的類別內。

@Configuration
public class AppConfig {
    @Bean
    public UserPreferences userPreferences() {
        return new UserPreferences();
    }
}

@Transactional

其本質是對方法前後進行攔截,然后在目標方法開始之前創建或者加入一個事物,在執行完目標方法之後根據執行情況提交或者回滾事務。

銀行轉帳:在銀行轉帳操作中,涉及到兩個帳戶的資金變動。這個過程需要保證轉帳操作是一個原子單元,要麼轉帳成功並更新兩個帳戶的餘額,要麼轉帳失敗並恢復到之前的狀態。

優點:可以減少許多資料庫管理的程式碼,可以直接對資料進行變更。


上一篇
建立你的第一個Spring Boot專案
下一篇
Spring Data JPA
系列文
Spring Boot & Android Studio教學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言