iT邦幫忙

2024 iThome 鐵人賽

DAY 18
0

上兩篇文章使用兩種不同的撰寫方式來實現功能,接下來敘述兩者的差異。

1.語法風格的不同:

* 第一種寫法使用傳統的鏈式方法調用風格,其中包含了許多 and() 方法來將配置連接起來。
* 第二種寫法則使用了Lambda表達式(例如, authorizeHttpRequests((authorize) -> {...})),這種風格相對於傳統的寫法來說更加簡潔和現代化。
  1. and()的使用:

    • 在第一種寫法中, and() 方法大量運用於配置的串接,這是傳統的Spring Security配置方式。
    • 第二種寫法由於使用了Lambda語法,減少了 and() 的使用,使語法更清晰。這是因為在一些上下文中,Lambda表達式本身就能表示方法鏈中的該部分,因此不需要重複調用 and() 來表示上下文的結束。
  2. requestMatchers的配置:

第一種寫法的 requestMatchers("/api/v1/auth/") 允許所有請求通過,而第二種寫法的requestMatchers("/error/", "/hello") 則允許這兩個特定路徑的請求,這是不同的安全策略。根據實際需求,你可以選擇不同的配置。

  1. 代碼的簡潔性和可讀性:

第二種寫法更具可讀性,因為它使用了Lambda使得結構更加清晰,特別是在處理較多的配置時,這種方式能過度簡化代碼,便於維護。

總結來說,第二種寫法是對第一種寫法的一種現代化和簡化,並且減少了 and() 的使用,使得代碼視覺上更清晰易懂。這種風格也已成為Spring Security 5及以後版本的推薦寫法。


上一篇
Day 17 Jwt Security 2
下一篇
Day 19 Jwt AuthRegister
系列文
Spring Boot微服務架構:API設計與實現30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言