91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用SpringBoot對validation進行集成時會遇到哪些問題

發布時間:2020-12-18 14:07:47 來源:億速云 閱讀:188 作者:Leah 欄目:開發技術

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

SpringBoot集成validation

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

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

引入之后,便可以在項目中使用@Valid等來進行校驗了。

這里寫一個簡單的示例基于@Valid來驗證提交的參數是否合法。首先建一個實體類,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 = "格式錯誤")
 private String other;
}

順便校驗了一下其他的參數,最后一個other字段用來校驗粉絲提出疑問的正則表達式。

然后,在創建一個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("參數校驗成功!");
 }
 }
}

如果參數校驗出錯,會打印錯誤日志,如果校驗成功則打印“參數校驗成功!”。因為是Post請求,咱們就寫一個針對該服務的單元測試:

@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(); //得到返回結果
 log.info("返回結果content={}", content);
 Assert.assertEquals(200, status); 
 }
}

執行打印測試,查看日志,發現校驗通過,并沒有出錯。至此,粉絲提出的質疑并不成立。而粉絲遇到的問題,很可能是哪個細節導致了校驗失敗,而他總結的經驗就是validation校驗參數有坑。

以上就是使用SpringBoot對validation進行集成時會遇到哪些問題,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

贡山| 榆树市| 万年县| 苍溪县| 拜城县| 肥西县| 井研县| 罗定市| 榆林市| 祁连县| 若羌县| 绥阳县| 长顺县| 钟祥市| 逊克县| 南华县| 永吉县| 从化市| 新巴尔虎右旗| 商洛市| 阿拉善左旗| 新河县| 海阳市| 塔城市| 徐水县| 如东县| 东阳市| 东明县| 蓬安县| 大冶市| 石城县| 黄平县| 泽普县| 南丹县| 米易县| 安仁县| 宜春市| 新乐市| 黔西县| 蒙城县| 罗甸县|