内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

使用SpringBoot對validation進(jìn)行集成時(shí)會(huì)遇到哪些問題-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)使用SpringBoot對validation進(jìn)行集成時(shí)會(huì)遇到哪些問題,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

10年積累的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)制作后付款的網(wǎng)站建設(shè)流程,更有白沙黎族免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

SpringBoot集成validation


集成過程非常簡單,在原項(xiàng)目的pom文件中直接引入如下依賴:

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

引入之后,便可以在項(xiàng)目中使用@Valid等來進(jìn)行校驗(yàn)了。

這里寫一個(gè)簡單的示例基于@Valid來驗(yàn)證提交的參數(shù)是否合法。首先建一個(gè)實(shí)體類,LoginForm(使用了Lombok):

@Data
public class LoginForm {
 @NotBlank(message = "郵箱不能為空")
 @Email
 private String email;
 @NotBlank(message = "密碼不能為空")
 @Length(min = 6,message = "密碼長度最小為6位")
 private String password;
 @NotBlank
 @Pattern(regexp = "^A-\\d{12}-\\d{4}$",message = "格式錯(cuò)誤")
 private String other;
}

順便校驗(yàn)了一下其他的參數(shù),最后一個(gè)other字段用來校驗(yàn)粉絲提出疑問的正則表達(dá)式。

然后,在創(chuàng)建一個(gè)Controller類:

@Slf4j
@RestController
public class LoginController {

 @PostMapping("/login")
 public void login(@Valid LoginForm loginForm, BindingResult bindingResult) {
 log.info("loginForm:{}", loginForm);
 if (bindingResult.hasErrors()) {
  for (ObjectError error : bindingResult.getAllErrors()) {
  log.info("error:{}", error.getDefaultMessage());
  }
 } else {
  log.info("參數(shù)校驗(yàn)成功!");
 }
 }
}

如果參數(shù)校驗(yàn)出錯(cuò),會(huì)打印錯(cuò)誤日志,如果校驗(yàn)成功則打印“參數(shù)校驗(yàn)成功!”。因?yàn)槭荘ost請求,咱們就寫一個(gè)針對該服務(wù)的單元測試:

@Slf4j
@SpringBootTest
@RunWith(SpringRunner.class)
@AutoConfigureMockMvc
@WebAppConfiguration
public class TestLoginController {

 @Autowired
 private WebApplicationContext webApplicationContext;

 @Autowired
 private MockMvc mockMvc;

 @Before
 public void setUp() {
 mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
 }

 @Test
 public void testLogin() throws Exception {
 MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.post("/login")
  .param("email", "541075754@qq.com")
  .param("password", "123456")
  .param("other", "A-123456789012-1234")
  .accept(MediaType.APPLICATION_JSON))
  .andDo(MockMvcResultHandlers.print())
  .andReturn();
 int status = mvcResult.getResponse().getStatus();   //得到返回代碼
 String content = mvcResult.getResponse().getContentAsString(); //得到返回結(jié)果
 log.info("返回結(jié)果content={}", content);
 Assert.assertEquals(200, status); 
 }
}

執(zhí)行打印測試,查看日志,發(fā)現(xiàn)校驗(yàn)通過,并沒有出錯(cuò)。至此,粉絲提出的質(zhì)疑并不成立。而粉絲遇到的問題,很可能是哪個(gè)細(xì)節(jié)導(dǎo)致了校驗(yàn)失敗,而他總結(jié)的經(jīng)驗(yàn)就是validation校驗(yàn)參數(shù)有坑。

以上就是使用SpringBoot對validation進(jìn)行集成時(shí)會(huì)遇到哪些問題,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站標(biāo)題:使用SpringBoot對validation進(jìn)行集成時(shí)會(huì)遇到哪些問題-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://www.rwnh.cn/article0/esioo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、網(wǎng)站維護(hù)面包屑導(dǎo)航、網(wǎng)站建設(shè)網(wǎng)站排名、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
鄯善县| 阿拉善右旗| 宣武区| 阜康市| 陇南市| 乌兰察布市| 汉中市| 临海市| 达拉特旗| 炎陵县| 榆中县| 宁安市| 福鼎市| 十堰市| 大英县| 兴业县| 都江堰市| 禹城市| 息烽县| 沙洋县| 霍邱县| 班玛县| 西丰县| 小金县| 哈密市| 寿阳县| 霍林郭勒市| 穆棱市| 邳州市| 望谟县| 玛沁县| 洪湖市| 汶川县| 米泉市| 西盟| 彰武县| 阳泉市| 安陆市| 错那县| 定兴县| 望奎县|