ÃֽŠ°Ô½Ã±Û(JAVA)
2018.07.30 / 10:26
½ºÇÁ¸µ ÄÁÆ®·Ñ·¯¿Í ÆĶó¹ÌÅÍ : 2. ÆĶó¹ÌÅÍ ¹ë¸®µ¥À̼Ç
summerman
Ãßõ ¼ö 223
½ºÇÁ¸µ ÄÁÆ®·Ñ·¯¿Í ÆĶó¹ÌÅÍ ½Ã¸®Áî
1. ÄÁÆ®·Ñ·¯¿¡¼ ÆĶó¹ÌÅ͸¦ ¹Þ´Â ¹æ¹ý
- https://gs.saro.me/#!m=elec&jn=878
2. ÆĶó¹ÌÅÍ ¹ë¸®µ¥À̼Ç
- https://gs.saro.me/#!m=elec&jn=879
¼·Ð
ÀÌÀü Àå¿¡¼´Â ÄÁÆ®·Ñ·¯¿¡¼ ÆĶó¹ÌÅ͸¦ ¹Þ´Â ¹æ¹ý¿¡ ´ëÇؼ °ÀÇÇÏ¿´½À´Ï´Ù.
À̹ø Àå¿¡¼´Â ¹ÞÀº ÆĶó¹ÌÅÍ¿¡ ´ëÇÑ ¹ë¸®µ¥À̼ǿ¡ ´ëÇؼ °ÀÇ Çغ¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
ÀÚ¹Ù ½ºÆå¿¡´Â ¾Æ·¡¿Í °°Àº ±âº» ¹ë¸®µ¥ÀÌ¼Ç ¼ÂÀÌ Á¸ÀçÇÕ´Ï´Ù.
http://docs.oracle.com/javaee/7/api/javax/validation/constraints/package-summary.html
À§ ¹ë¸®µ¥ÀÌ¼Ç Áß ¸î°¡Áö¸¸ Á¤¸®ÇÏ¸é ¾Æ·¡¿Í °°½À´Ï´Ù.
- ¼³¸íÀÌ °£´ÜÇÏ´Ï Á÷Á¢ ¸µÅ©¸¦ º¸½Ã´Â °Íµµ ÁÁ½À´Ï´Ù.
AssertFalse : °ÅÁþÀÎ °æ¿ì¸¸ Åë°ú
AssertTrue : ÂüÀÎ °æ¿ì¸¸ Åë°ú
Future : ¹Ì·¡³¯Â¥ÀÎ °æ¿ì¸¸ Åë°ú
Past : °ú°Å³¯Â¥ÀÎ °æ¿ì¸¸ Åë°ú
Pattern : ÇØ´ç ÆÐÅÏ ³»¿¡¼¸¸ Åë°ú
Null : null ÀÎ °æ¿ì¸¸ Åë°ú
NotNull : null ÀÌ ¾Æ´Ñ °æ¿ì¿¡¸¸ Åë°ú
NotNull.List : ¸®½ºÆ® Àüü°¡ null ÀÌ ¾Æ´Ñ °æ¿ì¿¡¸¸ Åë°ú
Size : ½ºÆ®¸µÀÇ »çÀÌÁî Á¶°ÇÀÌ ÀÏÄ¡ÇÒ ¶§ Åë°ú.
Min : ¼ýÀÚ ÇüÅÂÀÇ ÃÖ¼Ò min ÀÌ»ó [ÅؽºÆ®¿¡¼µµ ¼ýÀڷΠġȯÇÏ¿© ¿¬»ê]
Max : ¼ýÀÚ ÇüÅÂÀÇ ÃÖ¼Ò max ÀÌ»ó [ÅؽºÆ®¿¡¼µµ ¼ýÀڷΠġȯÇÏ¿© ¿¬»ê]
@RequestParam¸¦ ÅëÇÑ ¹ë¸®µ¥À̼ǰá°ú : /temp
- @RestController
- class TempController
- {
- @GetMapping("/temp")
- String temp(@RequestParam(value="p1") @NotNull String p1)
- {
- return "Åë°ú";
- }
- }
- ¿À·ù : p1 ÀÌ null ÀÓ
°á°ú : /temp?p1=abcde
Åë°ú°á°ú : /temp?p1=aa
- @GetMapping("/temp")
- String temp(@RequestParam(value="p1") @Valid @Pattern(regexp="[a-z]{3}") String p1)
- {
- return "Åë°ú";
- }
Åë°ú
- ¿À·ù ³ª¾ßÇÏÁö ¾Ê³ª?? @Valid¸¦ Áà¾ßÇϳª?°á°ú : /temp?p1=aa
- @GetMapping("/temp")
- String temp(@RequestParam(value="p1") @Valid @NotNull @Pattern(regexp="[a-z]{3}") String p1)
- {
- return "Åë°ú";
- }
Åë°ú
- ±×·¸½À´Ï´Ù. RequestParam ¿¡¼´Â @NotNull ´Â »ç¿ëÇÒ ¼ö ÀÖÀ¸³ª @Pattern À» »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
- ½ÉÁö¾î @NotNull º¸´Ü ¾Æ·¡ ¹æ¹ýÀÌ ´õ ³ªÀ» °Ì´Ï´Ù.±×·³ ¸ðµ¨À» °¡Áö°í Çغ¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
- String temp(@RequestParam(value="p1", required=true) String p1)
¸ðµ¨ Ŭ·¡½º¸¦ ÅëÇÑ ¹ë¸®µ¥À̼ǰá°ú : /temp
- @RestController
- class TempController
- {
- @GetMapping("/temp")
- String temp(@Valid Abc abc)
- {
- return "Åë°ú : " + p1;
- }
- @Data
- @ToString @Getter @Setter
- static public class Abc {
- @NotNull
- @Pattern(regexp = "[a-z]{3}")
- String p1 = "default";
- }
- }
- ¿À·ù : p1 ÀÌ null ÀÓ
°á°ú : /temp?p1=Daa
- ¿À·ù : p1 ÀÌ ¿µ¹®¼Ò¹®ÀÚ3ÀÚ("[a-z]{3}") °¡ ¾Æ´Ï´Ù.
°á°ú : /temp?p1=try
Åë°ú : try
±×·¸´Ù¸é ÆĶó¹ÌÅ͸¦ üũÇÏ´Â °ÍÀΰ¡?
¶ÇÇÑ ´ÙÁß Á¶°ÇµéÀÌ µÉ °ÍÀΰ¡?°á°ú : /temp
- @RestController
- class TempController
- {
- @GetMapping("/temp")
- String temp(@Valid Abc abc)
- {
- return "Åë°ú : " + abc.getP1();
- }
- @Data @ToString @Getter @Setter
- static public class Abc {
- @NotNull @Size(min=1, max=10)
- String p1 = "default";
- @Min(1) @Max(100)
- int p2 = 1;
- }
- }
Åë°ú : TempController.Abc(p1=default, p2=1)
ÆĶó¹ÌÅ͸¦ üũÇÏ´Â °ÍÀÌ ¾Æ´Ñ ¸ðµ¨À» üũÇÏ´Â °Í ÀÔ´Ï´Ù.!!!
Áï, ¾Æ¹«·± ÀÎÀÚ¸¦ ³ÖÁö ¾Ê¾ÒÁö¸¸ ¸ðµ¨ÀÌ Á¶°Ç¿¡ ¸ÂÀ¸´Ï Åë°úÇÕ´Ï´Ù.
°á°ú : /temp?p1=AbcdeAbcdea
- ¿À·ù : p1ÀÇ ±æÀÌ°¡ 10ÀÚ¸¦ ³Ñ¾î°©´Ï´Ù.
°á°ú : /temp?p1=AbcdeAbc&p2=32
Åë°ú : TempController.Abc(p1=AbcdeAbc, p2=32)°á°ú : /temp
- @Data @ToString @Getter @Setter
- static public class Abc {
- @NotNull @Min(1) @Max(100)
- String p1;
- @Min(1) @Max(100)
- int p2 = 1;
- }
- ¿À·ù : p1 ÀÌ null ÀÔ´Ï´Ù.
°á°ú : /temp?p1=a
- ¿À·ù : @Min(1) @Max(100) Á¶°ÇÀ¸·Î p1Àº ¼ýÀÚ ÇüÅ¿©¾ßÇÕ´Ï´Ù.
°á°ú : /temp?p1=33
Åë°ú : TempController.Abc(p1=33, p2=1)
- ½ºÆ®¸µÀ¸·Î ¹Þ¾Æ¾ßÇÏÁö¸¸ ¼ýÀÚ·Î °ËÁõÇÒ ¶§ À¯¿ëÇÕ´Ï´Ù.
PathVariable
- ¾Õ Àå¿¡¼µµ ¼³¸í?çÁö¸? PathVariable Àº »õ·Î¿î ÇüÅ¿¡ ´Ù¸¥ Ç÷ο츦 Ÿ´Â °ÍÀÌ ¾Æ´Ñ Ç¥Çö¹æ½ÄÀÌ ´Ù¸¥°Í ÀÔ´Ï´Ù.
- Áï, »ç¿ë¹ýÀº °°½À´Ï´Ù.°á°ú : /temp/a
- @RestController
- class TempController
- {
- @GetMapping("/temp/{p1}")
- String temp(@Valid Abc abc)
- {
- return "Åë°ú : " + abc.toString();
- }
- @Data @ToString @Getter @Setter
- static public class Abc {
- @NotNull @Min(1) @Max(1000)
- String p1;
- }
- }
- ¿À·ù : @Min(1) @Max(1000) Á¶°ÇÀ¸·Î ¿ÀÁ÷ ¼ýÀÚ ÇüÅ·Π³Ñ°Ü¾ßÇÕ´Ï´Ù.
°á°ú : /temp/23231
- ¿À·ù : ¹üÀ§¸¦ ÃÊ°úÇÕ´Ï´Ù.
°á°ú : /temp/23
Åë°ú : TempController.Abc(p1=23)
±âŸ : ³¯Â¥
- ³¯Â¥ °°Àº°æ¿ì´Â ÀÔ·Â Æ÷¸äÀ» ¼³Á¤ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù.°á°ú [ÀÛ¼ºÀϷκÎÅÍ °ú°Å³¯Â¥] : /temp?date=20001122
- @RestController
- class TempController
- {
- @GetMapping("/temp")
- String temp(@Valid Abc abc)
- {
- return "Åë°ú : " + abc.toString();
- }
- @Data @ToString @Getter @Setter
- static public class Abc {
- @NotNull
- @Future
- @DateTimeFormat(pattern = "yyyyMMdd")
- Date date;
- }
- }
- ¿À·ù
°á°ú [ÀÛ¼ºÀϷκÎÅÍ ¹Ì·¡³¯Â¥] : /temp?date=20171122
Åë°ú : TempController.Abc(date=Wed Nov 22 00:00:00 KST 2017)
Ãß½Å
- nullÀÌ ÀÖ´Â Á¶°ÍµéÀº @NotNull À» ÁÖÁö ¾ÊÀ¸¸é Á¶°Ç¿¡ ¸ÂÁö ¾Ê´õ¶óµµ Åë°úµË´Ï´Ù.!!