{"id":18533,"date":"2024-03-15T17:08:17","date_gmt":"2024-03-15T17:08:17","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/"},"modified":"2024-03-21T13:32:05","modified_gmt":"2024-03-21T13:32:05","slug":"how-to-validate-request-parameters-in-spring-boot","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/","title":{"rendered":"How to validate request parameters in Spring Boot?"},"content":{"rendered":"<p>In Spring Boot, you can validate request parameters using the @Validated and @Valid annotations provided by the Spring framework.<\/p>\n<p>First, you need to add the following dependencies in the pom.xml file:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dependency<\/span>&gt;<\/span>\r\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">groupId<\/span>&gt;<\/span>org.springframework.boot<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">groupId<\/span>&gt;<\/span>\r\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">artifactId<\/span>&gt;<\/span>spring-boot-starter-validation<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">artifactId<\/span>&gt;<\/span>\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">dependency<\/span>&gt;<\/span>\r\n<\/code><\/pre>\n<p>Next, use the @Validated annotation on the method parameters in the Controller class and use the @Valid annotation before the parameters that need to be validated. For example:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">import<\/span> org.springframework.validation.annotation.Validated;\r\n<span class=\"hljs-keyword\">import<\/span> javax.validation.Valid;\r\n<span class=\"hljs-keyword\">import<\/span> javax.validation.constraints.NotBlank;\r\n\r\n<span class=\"hljs-meta\">@RestController<\/span>\r\n<span class=\"hljs-meta\">@Validated<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">UserController<\/span> {\r\n\r\n    <span class=\"hljs-meta\">@PostMapping(\"\/users\")<\/span>\r\n    <span class=\"hljs-keyword\">public<\/span> ResponseEntity <span class=\"hljs-title function_\">createUser<\/span><span class=\"hljs-params\">(<span class=\"hljs-meta\">@Valid<\/span> <span class=\"hljs-meta\">@RequestBody<\/span> User user)<\/span> {\r\n        <span class=\"hljs-comment\">\/\/ \u5904\u7406\u521b\u5efa\u7528\u6237\u7684\u903b\u8f91<\/span>\r\n        <span class=\"hljs-comment\">\/\/ ...<\/span>\r\n    }\r\n    \r\n}\r\n\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">User<\/span> {\r\n\r\n    <span class=\"hljs-meta\">@NotBlank(message = \"\u7528\u6237\u540d\u4e0d\u80fd\u4e3a\u7a7a\")<\/span>\r\n    <span class=\"hljs-keyword\">private<\/span> String username;\r\n\r\n    <span class=\"hljs-comment\">\/\/ getter\u548csetter\u65b9\u6cd5<\/span>\r\n    <span class=\"hljs-comment\">\/\/ ...<\/span>\r\n}\r\n<\/code><\/pre>\n<p>In the example above, the @NotBlank annotation is used to validate the username parameter. If the parameter is empty or contains only spaces, a validation exception will be thrown, and the response will contain the corresponding error message.<\/p>\n<p>Additionally, it is also possible to customize validation annotations, for example:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">import<\/span> javax.validation.Constraint;\r\n<span class=\"hljs-keyword\">import<\/span> javax.validation.Payload;\r\n<span class=\"hljs-keyword\">import<\/span> javax.validation.constraints.Pattern;\r\n<span class=\"hljs-keyword\">import<\/span> java.lang.annotation.*;\r\n\r\n<span class=\"hljs-meta\">@Target({ElementType.FIELD})<\/span>\r\n<span class=\"hljs-meta\">@Retention(RetentionPolicy.RUNTIME)<\/span>\r\n<span class=\"hljs-meta\">@Constraint(validatedBy = {})<\/span>\r\n<span class=\"hljs-meta\">@Pattern(regexp = \"^[A-Z0-9]{8}$\", message = \"\u8ba2\u5355\u53f7\u5fc5\u987b\u662f8\u4f4d\u5927\u5199\u5b57\u6bcd\u548c\u6570\u5b57\u7684\u7ec4\u5408\")<\/span>\r\n<span class=\"hljs-meta\">@Documented<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-meta\">@interface<\/span> OrderNo {\r\n    String <span class=\"hljs-title function_\">message<\/span><span class=\"hljs-params\">()<\/span> <span class=\"hljs-keyword\">default<\/span> <span class=\"hljs-string\">\"\"<\/span>;\r\n\r\n    Class&lt;?&gt;[] groups() <span class=\"hljs-keyword\">default<\/span> {};\r\n\r\n    Class&lt;? <span class=\"hljs-keyword\">extends<\/span> <span class=\"hljs-title class_\">Payload<\/span>&gt;[] payload() <span class=\"hljs-keyword\">default<\/span> {};\r\n}\r\n\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Order<\/span> {\r\n\r\n    <span class=\"hljs-meta\">@OrderNo<\/span>\r\n    <span class=\"hljs-keyword\">private<\/span> String orderNo;\r\n\r\n    <span class=\"hljs-comment\">\/\/ getter\u548csetter\u65b9\u6cd5<\/span>\r\n    <span class=\"hljs-comment\">\/\/ ...<\/span>\r\n}\r\n<\/code><\/pre>\n<p>In custom validation annotations, you can use Spring&#8217;s @Pattern and other annotations to define basic validation rules, and then combine them with custom validation rules for validations.<\/p>\n<p>This is the method of using Spring Boot to validate request parameters. In actual development, specific validation annotations can be defined and used based on business requirements to ensure the validity of request parameters.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Spring Boot, you can validate request parameters using the @Validated and @Valid annotations provided by the Spring framework. First, you need to add the following dependencies in the pom.xml file: &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt; &lt;artifactId&gt;spring-boot-starter-validation&lt;\/artifactId&gt; &lt;\/dependency&gt; Next, use the @Validated annotation on the method parameters in the Controller class and use the @Valid annotation before the [&hellip;]<\/p>\n","protected":false},"author":14,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-18533","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to validate request parameters in Spring Boot? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to validate request parameters in Spring Boot?\" \/>\n<meta property=\"og:description\" content=\"In Spring Boot, you can validate request parameters using the @Validated and @Valid annotations provided by the Spring framework. First, you need to add the following dependencies in the pom.xml file: &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt; &lt;artifactId&gt;spring-boot-starter-validation&lt;\/artifactId&gt; &lt;\/dependency&gt; Next, use the @Validated annotation on the method parameters in the Controller class and use the @Valid annotation before the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T17:08:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T13:32:05+00:00\" \/>\n<meta name=\"author\" content=\"Noah Thompson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Noah Thompson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/\"},\"author\":{\"name\":\"Noah Thompson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\"},\"headline\":\"How to validate request parameters in Spring Boot?\",\"datePublished\":\"2024-03-15T17:08:17+00:00\",\"dateModified\":\"2024-03-21T13:32:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/\"},\"wordCount\":179,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/\",\"name\":\"How to validate request parameters in Spring Boot? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T17:08:17+00:00\",\"dateModified\":\"2024-03-21T13:32:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to validate request parameters in Spring Boot?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\",\"name\":\"Noah Thompson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"caption\":\"Noah Thompson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to validate request parameters in Spring Boot? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/","og_locale":"en_US","og_type":"article","og_title":"How to validate request parameters in Spring Boot?","og_description":"In Spring Boot, you can validate request parameters using the @Validated and @Valid annotations provided by the Spring framework. First, you need to add the following dependencies in the pom.xml file: &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt; &lt;artifactId&gt;spring-boot-starter-validation&lt;\/artifactId&gt; &lt;\/dependency&gt; Next, use the @Validated annotation on the method parameters in the Controller class and use the @Valid annotation before the [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T17:08:17+00:00","article_modified_time":"2024-03-21T13:32:05+00:00","author":"Noah Thompson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Noah Thompson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/"},"author":{"name":"Noah Thompson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a"},"headline":"How to validate request parameters in Spring Boot?","datePublished":"2024-03-15T17:08:17+00:00","dateModified":"2024-03-21T13:32:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/"},"wordCount":179,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/","name":"How to validate request parameters in Spring Boot? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T17:08:17+00:00","dateModified":"2024-03-21T13:32:05+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-validate-request-parameters-in-spring-boot\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to validate request parameters in Spring Boot?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a","name":"Noah Thompson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","caption":"Noah Thompson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18533","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=18533"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18533\/revisions"}],"predecessor-version":[{"id":52219,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18533\/revisions\/52219"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=18533"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=18533"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=18533"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}