国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【肥朝】用最低的成本,提高你的代碼穩壯性

番茄西紅柿 / 1943人閱讀

摘要:配置參數啟動時校驗如果配置文件沒有相關的配置,那么啟動時就會出現以下異常名字不能為空,請注意檢查,參考值為肥朝。肥朝小聲逼逼提高代碼穩壯性,肥朝認為最好的辦法就是提前預防。

配置參數啟動時校驗

如果配置文件沒有相關的配置,那么**啟動時**就會出現以下異常:

Description: Binding to target com.toby.provide.ApplicationProperties@31da6b2e failed: Property: feichao.info.name Value: null Reason: 名字不能為空,請注意檢查,參考值為:肥朝。

肥朝小聲逼逼:提高代碼穩壯性,肥朝認為最好的辦法就是提前預防。實際項目中,我們在配置文件配置了各種參數。但是大家也知道,不同環境的配置參數,是會不一樣的,難免會因為人為疏忽,導致某個環境的配置文件,少了一些關鍵參數,光靠肉眼來檢查,必然是一個低效而又不可靠的方式。如果你不用該方式校驗,很容易在某個特殊的場景下,才觸發出坑。但是你采用這種方式,做了大量的啟動時校驗,一旦參數不合法,項目啟動都啟動不了,做到了防范于未然!

Controller

HelloDTO

@Data public class HelloDTO { @NotBlank private String name; @Min(0) @Max(150) private int age; }

HelloController

@RestController public class HelloController { @RequestMapping("/controllerValid") public String controllerValid(@RequestBody @Valid HelloDTO helloDTO) { return "ok"; } }

請求參數為

{ "name":"肥朝", "age" : 151 }

時,出現校驗異常

org.springframework.web.bind.MethodArgumentNotValidException

Service

HelloDTO

@Data public class HelloDTO { @NotBlank private String name; @Min(0) @Max(150) private int age; }

AService

public interface AService { int insertUser(HelloDTO helloDTO); }

AServiceImpl

@Service public class AServiceImpl implements AService { @Autowired private BService bService; @Override public int insertUser(HelloDTO helloDTO) { return bService.insertUser(helloDTO); } }

BService

public interface BService { int insertUser(@Valid HelloDTO helloDTO); }

BServiceImpl

@Service @Slf4j @Validated public class BServiceImpl implements BService { @Override public int insertUser(HelloDTO helloDTO) { log.info("BService insertUser..."); return 0; } }

單元測試

@RunWith(SpringRunner.class) @SpringBootTest public class AserviceTest { @Autowired private BService bService; @Test public void testInsertUser() throws Exception { HelloDTO helloDTO = new HelloDTO(); bService.insertUser(helloDTO); } }

輸出校驗異常信息:

javax.validation.ConstraintViolationException

Dubbo

Dubbo官方文檔中已經寫得非常詳細,地址為:dubbo.apache.org/zh-cn/docs/…

參數驗證功能是基于 JSR303 實現的,用戶只需標識 JSR303 標準的驗證 annotation,并通過聲明 filter 來實現驗證。

maven依賴

javax.validation validation-api 1.0.0.GA org.hibernate hibernate-validator 4.2.0.Final

示例

參數標注示例

import java.io.Serializable; import java.util.Date; import javax.validation.constraints.Future; import javax.validation.constraints.Max; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; import javax.validation.constraints.Past; import javax.validation.constraints.Pattern; import javax.validation.constraints.Size; public class ValidationParameter implements Serializable { private static final long serialVersionUID = 7158911668568000392L; @NotNull // 不允許為空 @Size(min = 1, max = 20) // 長度或大小范圍 private String name; @NotNull(groups = ValidationService.Save.class) // 保存時不允許為空,更新時允許為空 ,表示不更新該字段 @Pattern(regexp = "^s*w+();


文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/7171.html

相關文章

  • 肥朝最低成本提高代碼壯性

    摘要:配置參數啟動時校驗如果配置文件沒有相關的配置,那么啟動時就會出現以下異常名字不能為空,請注意檢查,參考值為肥朝。肥朝小聲逼逼提高代碼穩壯性,肥朝認為最好的辦法就是提前預防。 配置參數啟動時校驗 showImg(https://user-gold-cdn.xitu.io/2019/5/19/16ad09ee8f357e36); 如果配置文件沒有相關的配置,那么**啟動時**就會出現以下異常: ...

    int64 評論0 收藏0
  • [ 學習路線 ] 學完這些去阿里!GOGOGO

    摘要:以下知識點是前輩師兄總結基礎語義化標簽引進了一些新的標簽,特別注意等,注意的標題結構理解瀏覽器解析的過程,理解的樹形結構,及相應理解標簽在各個瀏覽器上的默認樣式代理樣式,理解中的重置樣式表的概念理解等功能性標簽理解標簽,理解文件提交過程推薦 以下知識點是前輩師兄總結 1、HTML/HTML5基礎: 1.0、語義化H5標簽1.1、H5引進了一些新的標簽,特別注意article...

    zhaochunqi 評論0 收藏0
  • [ 學習路線 ] 學完這些去阿里!GOGOGO

    摘要:以下知識點是前輩師兄總結基礎語義化標簽引進了一些新的標簽,特別注意等,注意的標題結構理解瀏覽器解析的過程,理解的樹形結構,及相應理解標簽在各個瀏覽器上的默認樣式代理樣式,理解中的重置樣式表的概念理解等功能性標簽理解標簽,理解文件提交過程推薦 以下知識點是前輩師兄總結 1、HTML/HTML5基礎: 1.0、語義化H5標簽1.1、H5引進了一些新的標簽,特別注意article...

    learn_shifeng 評論0 收藏0
  • 前端學習之JS框架使

    摘要:目前,有三個明確的框架可供選擇。和在眾多開源框架中贏得了開發人員和公司的信任。雖然這三個框架有許多共同之處,但它們的受歡迎程度因行業而異。使用,這有助于在編碼時發現并糾正常見錯誤。 人們首先注意到的是你的應用程序的視覺吸引力。大多數用戶傾向于將界面設計與公司的信譽和專業能力聯系起來。這就是為什么選擇正確的前端技術對你的業務...

    不知名網友 評論0 收藏0
  • 使Docker統一團隊開發環境

    摘要:開場白作為一個技術團隊的,你是如何保證成員的開發環境達到公司的標準,或者是你定制的最低要求的如果你的回答是差不多就行了,有問題再說,那么,你已經在給自己挖坑了。好的,成員們開始構建你定制的開發環境了。 開場白 作為一個技術團隊的Leader,你是如何保證成員的開發環境達到公司的標準,或者是你定制的最低要求的?如果你的回答是:差不多就行了,有問題再說,那么,你已經在給自己挖坑了。 同事A...

    alin 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<