使用Spring 的 Null-Safety免受空指標錯誤
NullPointerExceptions(通常簡稱為“NPE”)是每個 Java 程式設計師的噩夢。
我們可以在網際網路上找到大量解釋如何編寫空安全程式碼的文章。空安全確保我們在程式碼中新增了適當的檢查,以確保物件引用不能為空,或者在物件為空時採取可能的安全措施,畢竟。
由於NullPointerException是執行時異常,因此在程式碼編譯期間很難找出這種情況。Java 的型別系統沒有辦法快速消除危險的空物件引用。
幸運的是,Spring Framework 提供了一些註釋來解決這個確切的問題。在本文中,我們將學習如何使用這些註解來使用Spring Boot編寫 null 安全程式碼。
本文附有GitHub 上的一個工作程式碼示例。
Spring中的空安全註釋
Spring核心包下org.springframework.lang,有4個這樣的註解:
- @NonNull,
- @NonNullFields,
- @Nullable,
- @NonNullApi.
Eclipse 和 IntelliJ IDEA 等流行的 IDE 可以理解這些註釋。他們可以在編譯期間警告開發人員潛在的問題。
我們將在本教程中使用 IntelliJ IDEA。讓我們透過一些程式碼示例瞭解更多資訊。
.....
如果我們想在構建管道中進行一些自動程式碼檢查,這在某種程度上也是可行的。
SpotBugs(著名但廢棄的FindBugs專案的轉世)提供了一個 Maven/Gradle 外掛,可以檢測由於可空性導致的程式碼異味。讓我們看看如何使用它。
對於 Maven 專案,我們需要更新pom.xml以新增SpotBugs Maven 外掛:
<plugin> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-maven-plugin</artifactId> <version>4.5.2.0</version> <dependencies> <!-- overwrite dependency on spotbugs if you want to specify the version of spotbugs --> <dependency> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs</artifactId> <version>4.5.3</version> </dependency> </dependencies> </plugin> |
構建專案後,我們可以使用此外掛中的以下目標:
- 目標分析spotbugs目標專案。
- check目標執行目標並在spotbugs發現任何錯誤時使構建失敗。
Kotlin使用一些註解來推斷 Spring API 的可空性。
相關文章
- easyexcel字型空指標錯誤Excel指標
- 如何避免Java程式碼中的空指標錯誤NullPointerException? - foojayJava指標NullException
- 如何避免空指標出錯?指標
- Java 14版本中將加入發現空指標錯誤提示功能Java指標
- 空指標的傳說指標
- 防止空指標指標
- Spring boot/Spring 統一錯誤處理方案的使用Spring Boot
- Spring中new出一個物件導致的空指標異常Spring物件指標
- 【MybatisPlus】資料庫的datetime型別欄位為空的時候,報錯空指標?MyBatis資料庫型別指標
- IDEA多執行緒下空指標斷點除錯Idea執行緒指標斷點除錯
- NullPointerException空指標異常的理解NullException指標
- GO 空指標和nilGo指標
- 使用 Spring Framework 時常犯的十大錯誤SpringFramework
- 使用 Spring Boot 提供API錯誤訊息的好方式Spring BootAPI
- springboot整合redis,redisTemplate 空指標Spring BootRedis指標
- mybatis配置執行報出Caused by: org.apache.ibatis.binding.BindingException:相關錯誤解決或者空指標異常MyBatisApacheException指標
- 皇御貴金屬:貴金屬指標之多空指標的應用解析指標
- 【常見錯誤】--Nltk使用錯誤
- Java關於空指標的防範與思考Java指標
- Java8的Optional:如何幹掉空指標?Java指標
- 「程式設計師面試」一文搞懂野指標、懸空指標、空指標和記憶體洩漏,附程式碼示例!程式設計師面試指標記憶體
- Java中如何避免空指標異常Java指標
- spingboot使用@Resource注入靜態變數報空指標的問題解決boot變數指標
- 閉包的錯誤使用
- Spring:錯誤No bean named 'xxxxxxx' availableSpringBeanAI
- spring事務常見錯誤Spring
- Java中的空指標異常 java.lang.NullPointerExceptionJava指標NullException
- 七、Spring Boot 錯誤處理原理 & 定製錯誤頁面Spring Boot
- Linux的標準輸入、標準輸出和標準錯誤Linux
- Kafka SimpleStringSchema 可能會造成空指標異常Kafka指標
- Java中如何處理空指標異常Java指標
- 使用antd報less的錯誤
- path_provider 編譯錯誤指導IDE編譯
- 詳解c++指標的指標和指標的引用C++指標
- 關於C++當中的指標懸空問題C++指標
- java空指標出現的情況:拆箱裝箱Java指標
- spring 快取 @Cacheable 錯誤總結Spring快取
- spring中No bean named xxx available錯誤SpringBeanAI