本篇文章給大家分享的是有關(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)
猜你還喜歡下面的內(nèi)容