JavaRush /Kurslar /All lectures for TK purposes /Spring Null-Safety annotasiýalar

Spring Null-Safety annotasiýalar

All lectures for TK purposes
Dereje , Sapak
Elýeterli

Java özünde null howpsuzlygyny tip ulgamynda görkezmäge rugsat bermeýän hem bolsa, Spring Framework häzir org.springframework.lang paketinde aşakdaky annotasiýalary öz içine alýar, şonuň üçin API interfeýslerini we meýdanlaryny null howpsuzlykda yglan edip bilersiňiz:

  • @Nullable: Käbir parametrleriň, gaýtarylýan gymmatyň ýa-da meýdanyň null bolup biljekdigini görkezýän annotasiýa.

  • @NonNull: Käbir parametrleriň, gaýtarylýan gymmatyň ýa-da meýdanyň null bolup bilmejekdigini görkezýän annotasiýa (@NonNullApi we @NonNullFields annotasiýalary peýdalanylýan ýerler üçin gerekli däl).

  • @NonNullApi: Paket derejesinde parametrler we gaýtarylýan gymmatlar üçin null däl semantikany deslapky ýagdaý hökmünde yglan edýän annotasiýa.

  • @NonNullFields: Paket derejesinde meýdanlar üçin null däl semantikany deslapky ýagdaý hökmünde yglan edýän annotasiýa.

Spring Framework öz içine alýan bu annotasiýalary netijeli ulanýar, ýöne olar Spring esasly islendik Java proýekti üçin null howpsuz API interfeýslerini we islege görä null howpsuz meýdanlary yglan etmek üçin hem ulanylyp bilner. Jynsyňyzyň ýolunyň uzynlygyna (varargs) we elementlerine dürli argümentleriň null bolmagyny kabul etmek häzirlikçe goldanmaýar, ýöne geljekki çykarylyşda goşular. Iň täze maglumatlary SPR-15942 sahypasyndan görüň. Spring Framework neşirleriniň arasynda null gymmaty kabul edýän üýtgetmeler garaşylýar, hatda kiçi düzedişler hem. Metodlaryň içinde ulanylýan tiplere null bolmagyny kabul etmegiň çäklerinden çykýar.

Reactor we Spring Data ýaly beýleki giňden ulanylýan kitabhanalar, Spring programmalaýyn üpjünçiliklerini işläp düzmek üçin yzygiderli umumy tejribe üpjün edýän null howpsuz API interfeýslerini öz içine alýar.

Ulanyş mysallary

Spring Framework API interfeýsi üçin null gymmaty kabul edijilik bilen yzygiderli yglan etmegiň üstesine, bu annotasiýalar IDE (mysal üçin, IDEA ýa-da Eclipse) tarapyndan null howpsuz bolup durmadyk peýdaly duýduryşlar üçin ulanylyp bilner, bu bolsa NullPointerException ýaly meselelerden gaçmaga kömek eder.

Bular hem Kotlin proýektlerinde Spring API interfeýsini null howpsuz etmek üçin ulanylýar, sebäbi Kotlin esasan null howpsuzlygyny goldaýar. Has giňişleýin maglumatlary Kotlin goldawy dokumentasiýasyndan tapyp bilersiňiz.

JSR-305 Meta-annotasiýalar

Spring annotasiýalary JSR 305 (häzirki wagtda amala aşyrylmadyk, ýöne giňden ulanylýan JSR) annotasiýalar bilen meta-annotasiýalardan geçýär. JSR-305-den meta-annotasiýalar, IDE we Kotlin ýaly gurallar üpjün edijilerine Spring annotasiýalaryny goldamak üçin berk kodlamak zerurlygy bolmazdan umumy null howpsuzlygyny üpjün etmäge mümkinçilik berýär.

Spring null howpsuz API interfeýsiniň artykmaçlyklaryndan peýdalanmak üçin taslamanyň ýoluna JSR-305 baglanyşygyny goşmak zerurlygy ýok we maslahat berilmeýär. Diňe Spring esasly kitaphanalary ýaly, kod bazasynda null howpsuz annotasiýalary ulanýan taslamalar com.google.code.findbugs:jsr305:3.0.2 Configurasiýasy bilen compileOnly ýa-da provided Maven görüş meýdançasyndan goşmaly, bu bolsa ýygnama duýduryşlaryňyza kömek eder.

Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION