<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Spring-Boot on ffff65535</title><link>https://blog.ffff65535.com/tags/spring-boot/</link><description>Recent content in Spring-Boot on ffff65535</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Fri, 20 May 2022 22:24:13 +0800</lastBuildDate><atom:link href="https://blog.ffff65535.com/tags/spring-boot/index.xml" rel="self" type="application/rss+xml"/><item><title>springboot 自定义校验注解</title><link>https://blog.ffff65535.com/posts/2022/05/20/java-springboot-custom-validation/</link><pubDate>Fri, 20 May 2022 22:24:13 +0800</pubDate><guid>https://blog.ffff65535.com/posts/2022/05/20/java-springboot-custom-validation/</guid><description>&lt;p>&lt;a href="./%E8%87%AA%E5%AE%9A%E4%B9%89%E6%A0%A1%E9%AA%8C%E6%B3%A8%E8%A7%A3ConstraintValidator.md" title=":include">自定义校验注解ConstraintValidator&lt;/a> 不太合适,优化一下&lt;/p>
&lt;p>maven&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&amp;lt;!-- Validation --&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;dependency&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;artifactId&amp;gt;spring-boot-starter-validation&amp;lt;/artifactId&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;/dependency&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>自定义校验注解&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>import javax.validation.Constraint;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>import javax.validation.Payload;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>import java.lang.annotation.*;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>/**
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * 枚举校验注解
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> *
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> */
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>@Target&lt;span style="color:#f92672">({&lt;/span>ElementType.FIELD, ElementType.METHOD, ElementType.ANNOTATION_TYPE&lt;span style="color:#f92672">})&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>@Retention&lt;span style="color:#f92672">(&lt;/span>RetentionPolicy.RUNTIME&lt;span style="color:#f92672">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>@Documented
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>@Constraint&lt;span style="color:#f92672">(&lt;/span>validatedBy &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#f92672">{&lt;/span>EnumValidator.class&lt;span style="color:#f92672">})&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>public @interface EnumValid &lt;span style="color:#f92672">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> String message&lt;span style="color:#f92672">()&lt;/span> default &lt;span style="color:#e6db74">&amp;#34;&amp;#34;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Class&amp;lt;?&amp;gt;&lt;span style="color:#f92672">[]&lt;/span> groups&lt;span style="color:#f92672">()&lt;/span> default &lt;span style="color:#f92672">{}&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Class&amp;lt;? extends Payload&amp;gt;&lt;span style="color:#f92672">[]&lt;/span> payload&lt;span style="color:#f92672">()&lt;/span> default &lt;span style="color:#f92672">{}&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> /**
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * 目标枚举类
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> */
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Class&amp;lt;?&amp;gt; target&lt;span style="color:#f92672">()&lt;/span> default Class.class;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>注解校验逻辑&lt;/p></description></item></channel></rss>