Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓƵ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
΢·þÎñÖ®¼äÈçºÎ¹²ÏíDTO?
 
 
  2390  次浏览      19
 2020-12-30 
   
 
±à¼­ÍƼö:
±¾ÎĽâÊÍÁËÒ»ÖÖÔÚ΢·þÎñÖ®¼ä¹²ÏíDTO¶ÔÏóµÄ·½·¨,°üÀ¨£º½«Óò¶ÔÏó·¢²¼ÎªDTO ¡¢Î¢·þÎñ¼ä¹²ÏíDTOµÈÏà¹ØÄÚÈÝ¡£
±¾ÎÄÀ´×ÔÓÚ΢ÐŹ«ÖںŠ¹øÍâµÄ´óÀУ¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­¡¢ÍƼö¡£

1. ¸ÅÊö

½üЩÄêÀ´£¬Î¢·þÎñ±äµÃÔ½À´Ô½Á÷ÐС£Î¢·þÎñ»ù±¾ÌØÕ÷ÊÇÄ£¿é»¯¡¢¶ÀÁ¢¡¢Ò×ÓÚÀ©Õ¹µÄ¡£ËüÃÇÖ®¼äÐèҪЭͬ¹¤×÷²¢½»»»Êý¾Ý¡£ÎªÁËʵÏÖÕâÒ»µã£¬ÎÒÃÇ´´½¨ÁËÃûΪ DTO µÄ¹²ÏíÊý¾Ý´«Êä¶ÔÏó¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃǽ«½éÉÜÔÚ΢·þÎñÖ®¼ä¹²ÏíDTOµÄ·½·¨¡£

2. ½«Óò¶ÔÏó·¢²¼ÎªDTO

ʹÓÃ΢·þÎñ¹ÜÀí±íʾӦÓóÌÐòÓòµÄÄ£ÐÍ¡£ÓòÄ£Ð͵ĹØ×¢µãÓë DTO ²»Í¬£¬ÎÒÃǽ«ËüÃÇÓëDAO²ãÖеÄÊý¾ÝÄ£ÐÍ·Ö¿ª¡£

ÕâÑù×öµÄÖ÷ÒªÔ­ÒòÊÇÎÒÃDz»Ïëͨ¹ý·þÎñÏò¿Í»§±©Â¶ÎÒÃÇÁìÓòµÄ¸´ÔÓÐÔ¡£

Ç¡Ç¡Ïà·´£¬ÎÒÃÇͨ¹ý REST API ±©Â¶ DTO Ϊ¿Í»§¶ËÌṩ·þÎñ¡£µ±DTOÔÚÕâЩ·þÎñÖ®¼ä´«µÝʱ£¬ÎÒÃǽ«ËüÃÇת»»ÎªÓò¶ÔÏó¡£

ÉÏÃæµÄ ÃæÏò·þÎñ¼Ü¹¹ ʾÒâÐÔµØÏÔʾÁËDTOµ½Óò¶ÔÏóµÄ×é¼þºÍÁ÷³Ì¡£

3. ΢·þÎñ¼ä¹²ÏíDTO

ÒÔ¿Í»§¶©¹º²úÆ·µÄ¹ý³ÌΪÀý¡£´Ë¹ý³Ì»ùÓÚ Customer-Order Ä£ÐÍ£¬´Ó·þÎñÌåϵ½á¹¹µÄ½Ç¶ÈÀ´¿´¿´Õâ¸ö¹ý³Ì¡£

¼ÙÉè¿Í»§·þÎñ½«ÇëÇóÊý¾Ý·¢Ë͵½¶©µ¥·þÎñ£º

"order": {
"customerId": 1,
"itemId": "A152"
}

Customer ºÍ Order ·þÎñʹÓà contracts (ÆõÔ¼) ½øÐÐͨÐÅ¡£contract£¨»òÕßÊÇ·þÎñÇëÇó£©ÒÔJSON¸ñʽÏÔʾ¡£×÷Ϊ Java Ä£ÐÍ£¬OrderDTO Àà±íʾ¿Í»§·þÎñºÍ¶©µ¥·þÎñÖ®¼äµÄÆõÔ¼£º

public class OrderDTO {
private int customerId;
private String itemId;
// constructor, getters, setters
}

3.1. ʹÓÿͻ§¶ËÄ£¿é¹²ÏíDTO

΢·þÎñÐèÒªÀ´×ÔÆäËû·þÎñµÄijЩÐÅÏ¢À´´¦ÀíÈκÎÇëÇó¡£¼ÙÉèÓеÚÈý¸ö΢·þÎñ½ÓÊÕ¶©µ¥¸¶¿îÇëÇó¡£Ó붩µ¥·þÎñ²»Í¬£¬´Ë·þÎñÐèÒª²»Í¬µÄ¿Í»§ÐÅÏ¢£º

public class CustomerDTO {
private String firstName;
private String lastName;
private String cardNumber;

// constructor, getters, setters
}

Èç¹ûÎÒÃÇ»¹Ìí¼ÓÁËËÍ»õ·þÎñ£¬¿Í»§ÐÅÏ¢½«¾ßÓУº

public class CustomerDTO {
private String firstName;
private String lastName;
private String homeAddress;
private String contactNumber;
// constructor, getters, setters
}

Òò´Ë£¬½« CustomerDTO Àà·ÅÔÚ¹²ÏíÄ£¿éÖÐÆð²»µ½Ô¤ÆÚµÄ×÷Óá£ÎªÁ˽â¾öÕâ¸öÎÊÌ⣬ÎÒÃDzÉÓÃÁËÒ»ÖÖ²»Í¬µÄ·½·¨¡£

ÔÚÿ¸ö΢·þÎñÄ£¿éÖУ¬´´½¨Ò»¸ö¿Í»§¶ËÄ£¿é(ÒÀÀµ°ü)£¬²¢ÔÚÆäÅԱߴ´½¨Ò»¸ö·þÎñ¶ËÄ£¿é£º

order-service
|__ order-client
|__ order-server

order-client Ä£¿é°üº¬Ò»¸öÓë¿Í»§·þÎñ¹²ÏíµÄDTO¡£Òò´Ë£¬order-clientÄ£¿é¾ßÓÐÒÔϽṹ£º

order-service
©¸©¤©¤order-client
OrderClient.java
OrderClientImpl.java
OrderDTO.java

OrderClient ÊÇÒ»¸ö½Ó¿Ú£¬Ëü¶¨ÒåÁË´¦Àí¶©µ¥ÇëÇóµÄorder·½·¨£º

public interface OrderClient {
OrderResponse order(OrderDTO orderDTO);
}

ΪÁËʵÏÖ order ·½·¨£¬ÎÒÃÇʹÓà RestTemplate ¶ÔÏóÏò order ·þÎñ·¢ËÍPOSTÇëÇó£º

String serviceUrl = "http://localhost:8002/order-service";
OrderResponse orderResponse = restTemplate.postForObject(serviceUrl + "/create",
request, OrderResponse.class);

´ËÍ⣬order-clientÄ£¿éÒѾ­¿ÉÒÔʹÓÃÁË¡£ËüÏÖÔÚ³ÉΪ customer-service Ä£¿éµÄÒÀÀµ¿â£º

[INFO] --- maven-dependency-plugin:3.1.2:list (default-cli) @ customer-service ---
[INFO] The following files have been resolved:
[INFO] com.baeldung.orderservice:order-client:jar:1.0-SNAPSHOT:compile

µ±È»£¬Èç¹û order-server Ä£¿éûÓÐÏò order-client ±©Â¶ /create ·þÎñ¶Ëµã£¬ÄÇÒ²ÊDz»ÐеΣ¡

@PostMapping("/create")
public OrderResponse createOrder(@RequestBody OrderDTO request)

ÓÉÓÚÕâ¸ö·þÎñ¶Ëµã£¬Customer Service ¿ÉÒÔͨ¹ýÆäorder¿Í»§¶Ë·¢ËͶ©µ¥ÇëÇó¡£Í¨¹ýʹÓÿͻ§¶ËÄ£¿é£¬Î¢·þÎñÒÔ¸ü¼Ó¶ÀÁ¢µÄ·½Ê½Ï໥ͨÐÅ¡£DTOÖеÄÊôÐÔÔÚ¿Í»§¶ËÄ£¿éÖиüС£Òò´Ë£¬Î¥±³ÆõÔ¼½öÏÞÓÚʹÓÃÏàͬ¿Í»§¶ËÄ£¿éµÄ·þÎñ¡£

4. ½áÂÛ

±¾ÎĽâÊÍÁËÒ»ÖÖÔÚ΢·þÎñÖ®¼ä¹²ÏíDTO¶ÔÏóµÄ·½·¨¡£³äÆäÁ¿£¬ÎÒÃÇͨ¹ýÇ©¶©ÌØÊâÆõÔ¼×÷Ϊ΢·þÎñ¿Í»§¶ËÄ£¿é£¨¿â£©µÄÒ»²¿·ÖÀ´ÊµÏÖÕâÒ»µã¡£Í¨¹ýÕâÖÖ·½Ê½£¬ÎÒÃǽ«·þÎñ¿Í»§¶ËÓë°üº¬API×ÊÔ´µÄ·þÎñ¶Ë²¿·Ö·Ö¿ª¡£ÕâÑù×öµÄºÃ´¦ÊÇ£º

·þÎñÖ®¼äûÓÐÈßÓà

Î¥·´ÆõÔ¼½öÏÞÓÚʹÓÃͬһ¿Í»§¶ËµÄ·þÎñ

 
   
2390 ´Îä¯ÀÀ       19
Ïà¹ØÎÄÕÂ

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂäµØ
Ïà¹Ø¿Î³Ì

ÔÆƽ̨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù
×îл¼Æ»®
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù 8-23[ÌØ»Ý]
LinuxÄں˱à³Ì¼°É豸Çý¶¯ 8-15[±±¾©]
Python¡¢Êý¾Ý·ÖÎöÓë»úÆ÷ѧϰ 8-23[ÌØ»Ý]
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ 8-22[ÏßÉÏ]
QTÓ¦Óÿª·¢ 9-5[±±¾©]
 
×îÐÂÎÄÕÂ
´óÊý¾Ýƽ̨ϵÄÊý¾ÝÖÎÀí
ÈçºÎÉè¼ÆʵʱÊý¾Ýƽ̨£¨¼¼Êõƪ£©
´óÊý¾Ý×ʲú¹ÜÀí×ÜÌå¿ò¼Ü¸ÅÊö
Kafka¼Ü¹¹ºÍÔ­Àí
ELK¶àÖּܹ¹¼°ÓÅÁÓ
×îпγÌ
´óÊý¾Ýƽ̨´î½¨Óë¸ßÐÔÄܼÆËã
´óÊý¾Ýƽ̨¼Ü¹¹ÓëÓ¦ÓÃʵս
´óÊý¾ÝϵͳÔËά
´óÊý¾Ý·ÖÎöÓë¹ÜÀí
Python¼°Êý¾Ý·ÖÎö
³É¹¦°¸Àý
ijͨÐÅÉ豸ÆóÒµ PythonÊý¾Ý·ÖÎöÓëÍÚ¾ò
ijÒøÐÐ È˹¤ÖÇÄÜ+Python+´óÊý¾Ý
±±¾© Python¼°Êý¾Ý·ÖÎö
ÉñÁúÆû³µ ´óÊý¾Ý¼¼Êõƽ̨-Hadoop
ÖйúµçÐÅ ´óÊý¾Ýʱ´úÓëÏÖ´úÆóÒµµÄÊý¾Ý»¯ÔËӪʵ¼ù