{"id":28757,"date":"2021-07-28T18:34:47","date_gmt":"2021-07-28T11:34:47","guid":{"rendered":"https:\/\/wiki.tino.org\/staging\/?p=28757"},"modified":"2021-11-23T16:20:32","modified_gmt":"2021-11-23T09:20:32","slug":"spring-boot-la-gi","status":"publish","type":"post","link":"https:\/\/tino.vn\/blog\/spring-boot-la-gi\/","title":{"rendered":"Spring Boot l\u00e0 g\u00ec? 5 l\u00fd do khi\u1ebfn b\u1ea1n n\u00ean h\u1ecdc Spring Boot"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Trong qu\u00e1 tr\u00ecnh t\u00ecm hi\u1ec3u, b\u1ea1n s\u1ebd nghe ng\u01b0\u1eddi h\u01b0\u1edbng d\u1eabn ho\u1eb7c t\u00e0i li\u1ec7u gi\u1edbi thi\u1ec7u v\u1ec1 Spring, Spring Boot, Node.js c\u00f9ng nhi\u1ec1u c\u00f4ng ngh\u1ec7 kh\u00e1c v\u00e0 g\u1ee3i \u00fd c\u00e1c b\u1ea1n n\u00ean t\u00ecm hi\u1ec3u nh\u1eefng c\u00f4ng ngh\u1ec7 n\u00e0y. N\u1ebfu b\u1ea1n \u0111ang t\u00ecm hi\u1ec3u v\u1ec1 Spring Boot, \u0111\u1eebng b\u1ecf qua b\u00e0i vi\u1ebft n\u00e0y! Trong b\u00e0i vi\u1ebft TinoHost s\u1ebd gi\u1edbi thi\u1ec7u v\u1edbi b\u1ea1n v\u1ec1 Spring Boot v\u00e0 l\u00fd do t\u1ea1i sao b\u1ea1n l\u1ea1i n\u00ean ch\u1ecdn Spring Boot \u0111\u1ec3 x\u00e2y d\u1ef1ng t\u01b0\u01a1ng lai l\u1eadp tr\u00ecnh c\u1ee7a m\u00ecnh!<\/strong><\/p>\n\n\n\n<h2 id=\"Spring_Boot_l\u00e0_g\u00ec?\"><a id=\"post-28757-_762zplm801f\"><\/a><strong>Spring Boot l\u00e0 g\u00ec?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/spring.io\/projects\/spring-boot\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>Spring Boot <\/strong><\/a>l\u00e0 m\u1ed9t Java framework \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n b\u1edfi Pivital Team d\u1ef1a tr\u00ean Java <a href=\"https:\/\/tino.vn\/blog\/framework-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">framework <\/a>m\u00e3 ngu\u1ed3n m\u1edf \u0111\u1ec3 t\u1ea1o ra c\u00e1c microservice, nh\u1eb1m m\u1ee5c \u0111\u00edch x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng Spring \u0111\u1ed9c l\u1eadp m\u1ed9t c\u00e1ch nhanh ch\u00f3ng v\u00e0 c\u00f3 kh\u1ea3 n\u0103ng th\u1ef1c thi ngay.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sau khi s\u1eed d\u1ee5ng Spring Boot \u0111\u1ec3 l\u1eadp tr\u00ecnh \u1ee9ng d\u1ee5ng Spring, b\u1ea1n c\u00f3 th\u1ec3 ch\u1ea1y ngay \u1ee9ng d\u1ee5ng c\u1ee7a m\u00ecnh m\u00e0 kh\u00f4ng c\u1ea7n ph\u1ea3i <strong>config <\/strong>(<em>c\u1ea5u h\u00ecnh<\/em>) qu\u00e1 nhi\u1ec1u.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"702\" height=\"336\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1540.png\" alt=\"spring-boot-la-gi\" class=\"wp-image-28759\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1540.png 702w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1540-300x144.png 300w\" sizes=\"(max-width: 702px) 100vw, 702px\" \/><\/figure><\/div>\n\n\n\n<h3 id=\"Microservice_l\u00e0_g\u00ec?\"><a id=\"post-28757-_qi8sfi533xi6\"><\/a><strong>Microservice l\u00e0 g\u00ec?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Microservice <\/strong>l\u00e0 m\u1ed9t m\u00f4 h\u00ecnh cho ph\u00e9p b\u1ea1n l\u1eadp tr\u00ecnh v\u00e0 ph\u00e1t tri\u1ec3n nhi\u1ec1u <strong>service <\/strong>(d\u1ecbch v\u1ee5\/ ch\u1ee9c n\u0103ng) m\u1ed9t c\u00e1ch \u0111\u1ed9c l\u1eadp. M\u1ed7i service c\u00f3 th\u1ec3 ch\u1ea1y \u0111\u1ed9c l\u1eadp v\u1edbi nhau v\u00e0 h\u1ed7 tr\u1ee3 cho m\u1ed9t ph\u1ea7n m\u1ec1m l\u1edbn h\u01a1n.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1541.png\" alt=\"spring-boot-la-gi\" class=\"wp-image-28760\" width=\"609\" height=\"503\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1541.png 483w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1541-300x248.png 300w\" sizes=\"(max-width: 609px) 100vw, 609px\" \/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">V\u1edbi Microservice, c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean s\u1ebd c\u1ea7n \u00edt th\u1eddi gian h\u01a1n \u0111\u1ec3 l\u1eadp tr\u00ecnh v\u00ec vi\u1ec7c t\u00e1ch nh\u1ecf s\u1ebd t\u1ea1o \u0111i\u1ec1u ki\u1ec7n thu\u1eadn l\u1ee3i h\u01a1n nhi\u1ec1u so v\u1edbi vi\u1ec7c th\u1ef1c hi\u1ec7n m\u1ed9t service l\u1edbn.<\/p>\n\n\n\n<h3 id=\"Nh\u1eefng_\u0111\u1eb7c_\u0111i\u1ec3m_n\u1ed5i_b\u1eadt_c\u1ee7a_Spring_Boot\"><a id=\"post-28757-_6zjyz378n2ec\"><\/a><strong>Nh\u1eefng \u0111\u1eb7c \u0111i\u1ec3m n\u1ed5i b\u1eadt c\u1ee7a Spring Boot<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Spring Boot \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n t\u1ed1i \u01b0u sao cho vi\u1ec7c c\u1ea5u h\u00ecnh<a href=\"https:\/\/tino.vn\/blog\/xml-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\"> XML<\/a> tr\u1edf n\u00ean \u0111\u01a1n gi\u1ea3n nh\u1ea5t trong Spring.<\/li><li>Spring Boot \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n sao cho vi\u1ec7c l\u1eadp tr\u00ecnh tr\u1edf n\u00ean nhanh ch\u00f3ng v\u00e0 d\u1ec5 d\u00e0ng.<\/li><li>Gia t\u0103ng n\u0103ng su\u1ea5t trong l\u1eadp tr\u00ecnh.<\/li><li>Gi\u1ea3m th\u1eddi gian l\u1eadp tr\u00ecnh xu\u1ed1ng t\u1ed1i thi\u1ec3u.<\/li><li>Spring Boot \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n nh\u1eb1m gi\u00fap ng\u01b0\u1eddi kh\u00f4ng c\u00f3 nhi\u1ec1u ki\u1ebfn th\u1ee9c l\u1eadp tr\u00ecnh v\u1eabn c\u00f3 th\u1ec3 x\u00e2y d\u1ef1ng \u1ee9ng d\u1ee5ng.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">TinoHost c\u00f3 th\u1ec3 k\u1ec3 \u0111\u1ebfn 3 t\u00ednh n\u0103ng r\u1ea5t quan tr\u1ecdng t\u1ea1o n\u00ean s\u1ef1 \u201cd\u1ec5 ch\u1ecbu\u201d c\u1ee7a Spring Boot nh\u01b0:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>SpringApplication<\/strong>: b\u1ea1n l\u1eadp tr\u00ecnh xong v\u00e0 ch\u1ec9 mu\u1ed1n ch\u1ea1y th\u1eed nghi\u1ec7m lu\u00f4n \u1ee9ng d\u1ee5ng c\u1ee7a m\u00ecnh? V\u1eady b\u1ea1n ch\u1ec9 c\u1ea7n g\u1ecdi run() l\u00e0 \u0111\u01b0\u1ee3c. V\u00ec Spring Boot \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf theo d\u1ea1ng \u201cjust run\u201d nh\u1eb1m gi\u00fap l\u1eadp tr\u00ecnh vi\u00ean ch\u1ec9 c\u1ea7n c\u1ea5u h\u00ecnh \u00edt Spring nh\u1ea5t c\u00f3 th\u1ec3, c\u00f2n l\u1ea1i Spring Boot s\u1ebd t\u1ef1 \u0111\u1ed9ng lo li\u1ec7u.<\/li><li><strong>Externalized Configuration<\/strong>: b\u1ea1n mu\u1ed1n t\u1ea1o m\u1ed9t \u1ee9ng d\u1ee5ng c\u00f3 th\u1ec3 ch\u1ea1y tr\u00ean nhi\u1ec1u m\u00f4i tr\u01b0\u1eddng kh\u00e1c nhau? V\u1eady, Spring Boot s\u1ebd gi\u00fap b\u1ea1n config c\u1ea5u h\u00ecnh t\u1eeb b\u00ean ngo\u00e0i v\u00e0 \u1ee9ng d\u1ee5ng c\u1ee7a b\u1ea1n s\u1ebd c\u00f3 th\u1ec3 tho\u1ea3i m\u00e1i ch\u1ea1y.<\/li><li><strong>Profiles<\/strong>: Khi b\u1ea1n c\u00f3 nhi\u1ec1u config kh\u00e1c nhau, b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng Profile \u0111\u1ec3 ph\u00e2n chia t\u1eebng lo\u1ea1i config cho t\u1eebng m\u00f4i tr\u01b0\u1eddng \u0111\u1ec3 d\u1ec5 d\u00e0ng qu\u1ea3n l\u00fd h\u01a1n.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Kh\u00f4ng ch\u1ec9 d\u1eebng l\u1ea1i \u1edf nh\u1eefng t\u00ednh n\u0103ng \u0111\u00f3, v\u1edbi Spring Boot, b\u1ea1n c\u00f2n c\u00f3 th\u1ec3 ph\u00e1t tri\u1ec3n web Application, Caching, g\u1eedi Email, Validation, l\u00e0m vi\u1ec7c v\u1edbi c\u00f4ng ngh\u1ec7 SQL,&#8230;<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1542.png\" alt=\"spring-boot-la-gi\" class=\"wp-image-28761\" width=\"722\" height=\"381\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1542.png 818w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1542-300x158.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1542-768x405.png 768w\" sizes=\"(max-width: 722px) 100vw, 722px\" \/><\/figure><\/div>\n\n\n\n<h2 id=\"B\u1eaft_\u0111\u1ea7u_l\u1eadp_tr\u00ecnh_c\u00f9ng_Spring_Boot\"><a id=\"post-28757-_o3q4zxanq0b9\"><\/a><strong>B\u1eaft \u0111\u1ea7u l\u1eadp tr\u00ecnh c\u00f9ng Spring Boot<\/strong><\/h2>\n\n\n\n<h2 id=\"V\u00ec_sao_n\u00ean_h\u1ecdc_Spring_Boot?\"><a id=\"post-28757-_2r7sfllnwu9p\"><\/a><strong>V\u00ec sao n\u00ean h\u1ecdc Spring Boot?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0110\u1ec3 x\u00e2y d\u1ef1ng m\u1ed9t \u1ee9ng d\u1ee5ng Java, b\u1ea1n s\u1ebd c\u00f3 v\u00f4 s\u1ed1 c\u00f4ng ngh\u1ec7 \u0111\u1ec3 c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng. Theo TinoHost, \u0111\u00e2y l\u00e0 5 t\u00ednh n\u0103ng v\u00e0 l\u1ee3i \u00edch v\u00f4 c\u00f9ng thuy\u1ebft ph\u1ee5c v\u00ec sao b\u1ea1n n\u00ean ch\u1ecdn Spring Boot:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>B\u1ea1n ng\u00e1n ng\u1ea9m vi\u1ec7c ph\u1ea3i c\u1ea5u h\u00ecnh t\u1eebng ch\u00fat m\u1ed9t cho \u1ee9ng d\u1ee5ng c\u1ee7a m\u00ecnh? Spring Boot s\u1ebd t\u1ef1 \u0111\u1ed9ng c\u1ea5u h\u00ecnh g\u1ea7n nh\u01b0 m\u1ecdi th\u1ee9 gi\u00fap b\u1ea1n t\u1eadp trung v\u00e0o vi\u1ec7c code.<\/li><li>V\u1edbi m\u1ed9t \u1ee9ng d\u1ee5ng l\u1edbn, vi\u1ec7c qu\u1ea3n l\u00fd t\u1eebng Microservice s\u1ebd v\u00f4 c\u00f9ng ph\u1ee9c t\u1ea1p. Spring Boot s\u1ebd gi\u00fap b\u1ea1n \u0111\u01a1n gi\u1ea3n h\u00f3a vi\u1ec7c n\u00e0y.<\/li><li>Annotation Based Configuration l\u00e0 t\u00ednh n\u0103ng \u0111\u1eafc l\u1ef1c s\u1ebd h\u1ed7 tr\u1ee3 b\u1ea1n t\u1ea1o l\u1eadp bean thay v\u00ec XML.<\/li><li>Servlet \u0111\u01b0\u1ee3c nh\u00fang s\u1eb5n trong Spring Boot, v\u00ec th\u1ebf b\u1ea1n c\u00f3 th\u1ec3 b\u1eadt v\u00e0 ch\u1ea1y Server Tomcat m\u1ed9t c\u00e1ch d\u1ec5 d\u00e0ng.<\/li><li>Spring Boot r\u1ea5t linh ho\u1ea1t \u0111\u1ec3 b\u1ea1n c\u00f3 th\u1ec3 c\u1ea5u h\u00ecnh Java Beans, XML v\u00e0 c\u1ea3 Database Transaction (giao d\u1ecbch\/ trao \u0111\u1ed5i).<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1543.png\" alt=\"spring-boot-la-gi\" class=\"wp-image-28762\" width=\"708\" height=\"340\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1543.png 1169w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1543-300x144.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1543-1024x492.png 1024w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1543-768x369.png 768w\" sizes=\"(max-width: 708px) 100vw, 708px\" \/><\/figure><\/div>\n\n\n\n<h3 id=\"Nh\u1eefng_ki\u1ebfn_th\u1ee9c_c\u1ea7n_tr\u01b0\u1edbc_khi_h\u1ecdc_Spring_Boot\"><a id=\"post-28757-_3nccvm2uq927\"><\/a><strong>Nh\u1eefng ki\u1ebfn th\u1ee9c c\u1ea7n tr\u01b0\u1edbc khi h\u1ecdc Spring Boot<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">M\u1eb7c d\u00f9 b\u1ea1n c\u00f3 th\u1ec3 b\u1ecf qua vi\u1ec7c t\u00ecm hi\u1ec3u Spring \u0111\u1ec3 v\u00e0o th\u1eb3ng v\u00e0 h\u1ecdc Spring Boot. Tuy nhi\u00ean, b\u1ea1n v\u1eabn ph\u1ea3i c\u1ea7n nh\u1eefng ki\u1ebfn th\u1ee9c c\u01a1 b\u1ea3n v\u1ec1 l\u1eadp tr\u00ecnh nh\u01b0: Java Core, c\u00e1ch qu\u1ea3n l\u00fd c\u00e1c Package, t\u00ecm hi\u1ec3u v\u1ec1 Template engine,&#8230;<\/p>\n\n\n\n<h4 id=\"Java_Core\"><a id=\"post-28757-_uux6juyx2po6\"><\/a><strong>Java Core<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Nh\u01b0 \u0111\u00e3 \u0111\u1ec1 c\u1eadp \u1edf tr\u00ean, Spring Boot l\u00e0 m\u1ed9t Java framework. V\u00ec th\u1ebf, \u0111\u1ec3 h\u1ecdc Spring Boot t\u1ed1t nh\u1ea5t b\u1ea1n n\u00ean n\u1eafm nh\u1eefng th\u1ee9 c\u01a1 b\u1ea3n nh\u1ea5t v\u1ec1 Java nh\u01b0:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>C\u00e1c h\u00e0m, c\u00e1c bi\u1ebfn v\u00e0 c\u00e1c v\u00f2ng l\u1eb7p.<\/li><li>H\u1ecdc, t\u1ef1 t\u00ecm hi\u1ec3u v\u1ec1 c\u00e1c t\u00ednh n\u0103ng c\u1ee7a Java<\/li><li>H\u1ecdc l\u1eadp tr\u00ecnh h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng (m\u1ed9t m\u00f4n h\u1ecdc b\u1eaft bu\u1ed9c trong ch\u01b0\u01a1ng tr\u00ecnh \u0111\u1ea1i h\u1ecdc).<\/li><li>H\u1ecdc v\u1ec1 Collections <a href=\"https:\/\/tino.vn\/blog\/restful-api-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">API <\/a>b\u1ea1n c\u00f3 th\u1ec3 tham kh\u1ea3o <a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Collection.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">t\u00e0i li\u1ec7u c\u1ee7a Oracle<\/a>.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">V\u00e0 nhi\u1ec1u th\u1ee9 kh\u00e1c nh\u01b0: Asynchronous, File IO, Stream API,&#8230;<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1544.png\" alt=\"spring-boot-la-gi\" class=\"wp-image-28763\" width=\"719\" height=\"360\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1544.png 881w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1544-300x150.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1544-768x384.png 768w\" sizes=\"(max-width: 719px) 100vw, 719px\" \/><\/figure><\/div>\n\n\n\n<h4 id=\"Qu\u1ea3n_l\u00fd_Package\"><a id=\"post-28757-_yoqd96hi45g7\"><\/a><strong>Qu\u1ea3n l\u00fd Package<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">D\u00f9 l\u00e0 ng\u01b0\u1eddi m\u1edbi, b\u1ea1n v\u1eabn n\u00ean t\u00ecm hi\u1ec3u qua c\u00e1ch \u0111\u1ec3 qu\u1ea3n l\u00fd c\u00e1c Package nh\u01b0: c\u00e0i \u0111\u1eb7t th\u00eam s\u1eeda x\u00f3a th\u01b0 vi\u1ec7n, ch\u1ec9nh s\u1eeda th\u00f4ng tin Project, khi th\u1ef1c h\u00e0nh nhi\u1ec1u c\u00e1c b\u1ea1n s\u1ebd quen tay d\u1ea7n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00f3 r\u1ea5t nhi\u1ec1u Package manager v\u00e0 b\u1ea1n c\u00f3 th\u1ec3 th\u1eed t\u00ecm hi\u1ec3u v\u00e0 l\u00e0m quen v\u1edbi Maven v\u00e0 Gradle.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1545.png\" alt=\"spring-boot-la-gi\" class=\"wp-image-28764\" width=\"711\" height=\"394\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1545.png 672w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1545-300x166.png 300w\" sizes=\"(max-width: 711px) 100vw, 711px\" \/><\/figure><\/div>\n\n\n\n<h4 id=\"T\u00ecm_hi\u1ec3u_v\u1ec1_Template_engine\"><a id=\"post-28757-_ye00vm701wav\"><\/a><strong>T\u00ecm hi\u1ec3u v\u1ec1 Template engine<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Template engine gi\u00fap b\u1ea1n x\u1eed l\u00fd ph\u1ea7n View trong<a href=\"https:\/\/tino.vn\/blog\/mvc-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\"> MVC<\/a>. Trong Spring Boot, b\u1ea1n s\u1ebd ph\u1ea3i c\u1ea7n s\u1eed d\u1ee5ng Template engine \u0111\u1ec3 c\u00f3 th\u1ec3 d\u00e1n d\u1eef li\u1ec7u v\u00e0o View v\u00e0 tr\u1ea3 v\u1ec1 k\u1ebft qu\u1ea3 l\u00ean m\u00e0n h\u00ecnh. B\u1ea1n c\u0169ng n\u00ean t\u00ecm hi\u1ec3u th\u00eam ki\u1ebfn th\u1ee9c v\u1ec1 HTML, Thymeleaf, JSP trong Spring Boot.<\/p>\n\n\n\n<h4 id=\"H\u1ecdc_Spring_Boot\"><a id=\"post-28757-_b3ox60hrvk1d\"><\/a><strong>H\u1ecdc Spring Boot<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">T\u1ea5t nhi\u00ean, b\u1ea1n mu\u1ed1n t\u00ecm hi\u1ec3u v\u00e0 h\u1ecdc h\u1ecfi c\u00e1ch s\u1eed d\u1ee5ng Spring Boot b\u1ea1n s\u1ebd c\u1ea7n ph\u1ea3i h\u1ecdc v\u00e0 th\u1ef1c h\u00e0nh v\u1edbi Spring Boot.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kh\u00f4ng nh\u1ea5t thi\u1ebft ph\u1ea3i l\u00e0m m\u1ed9t d\u1ef1 \u00e1n th\u1eadt l\u1edbn, th\u1eadt ho\u00e0nh tr\u00e1ng, b\u1ea1n ch\u1ec9 c\u1ea7n h\u1ecdc c\u00e1ch t\u1ea1o d\u1ef1 \u00e1n c\u00f9ng Spring Boot, h\u1ecdc v\u1ec1 c\u00e1c lu\u1ed3ng \u0111i trong Spring Boot, h\u1ecdc c\u00e1ch ph\u00e1t tri\u1ec3n c\u1ea5u tr\u00fac c\u1ee7a m\u1ed9t d\u1ef1 \u00e1n Spring Boot sao cho chu\u1ea9n nh\u1ea5t, h\u1ecdc v\u1ec1 c\u00e1ch Dependency injection \u00e1p d\u1ee5ng trong Spring Boot ra sao,&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">H\u1ecdc \u0111i \u0111\u00f4i v\u1edbi th\u1ef1c h\u00e0nh v\u00e0 th\u1ef1c h\u00e0nh c\u00e1ch s\u1eed d\u1ee5ng Spring Boot s\u1ebd l\u00e0 ph\u01b0\u01a1ng ph\u00e1p h\u1ecdc hi\u1ec7u qu\u1ea3 nh\u1ea5t!<\/p>\n\n\n\n<h4 id=\"C\u01a1_s\u1edf_d\u1eef_li\u1ec7u\"><a id=\"post-28757-_ishj5drndj7w\"><\/a><strong>C\u01a1 s\u1edf d\u1eef li\u1ec7u<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">B\u1ea5t c\u1ee9 m\u1ed9t ph\u1ea7n m\u1ec1m, \u1ee9ng d\u1ee5ng hay ch\u01b0\u01a1ng tr\u00ecnh n\u00e0o c\u0169ng c\u1ea7n ph\u1ea3i c\u00f3 c\u01a1 s\u1edf d\u1eef li\u1ec7u, v\u1eady n\u00ean, c\u00e1c b\u1ea1n s\u1ebd c\u1ea7n ph\u1ea3i t\u00ecm hi\u1ec3u th\u00eam v\u1ec1 c\u00e1c th\u1ee9 nh\u01b0:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>L\u00e0m c\u00e1ch n\u00e0o \u0111\u1ec3 \u0111\u1ecdc, th\u00eam, s\u1eeda v\u00e0 x\u00f3a d\u1eef li\u1ec7u &#8211; <a href=\"https:\/\/en.wikipedia.org\/wiki\/Create,_read,_update_and_delete\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">CRUD<\/a>.<\/li><li>C\u00e1ch \u0111\u1ec3 config c\u01a1 s\u1edf d\u1eef li\u1ec7u trong Spring Boot ra sao<\/li><li>C\u1ea5u tr\u00fac c\u00e1c l\u1edbp v\u00e0 <a href=\"https:\/\/spring.io\/projects\/spring-data-jpa\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">JPA<\/a><\/li><li>T\u00ecm hi\u1ec3u v\u1ec1 c\u00e1ch t\u1ea1o, s\u1eafp x\u1ebfp c\u00e1c Query<\/li><li>Th\u1ef1c h\u00e0nh th\u1eed c\u00e1c c\u00e2u Query ph\u1ee9c t\u1ea1p b\u1eb1ng MongoTemplate ch\u1eb3ng h\u1ea1n<\/li><li>V\u00e0 c\u1ea3 nh\u1eefng thao t\u00e1c <a href=\"https:\/\/docs.mongodb.com\/manual\/aggregation\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Aggregation <\/a>trong Mongo\u2026.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">T\u1ea5t c\u1ea3 nh\u1eefng thao t\u00e1c n\u00ean h\u1ecdc, n\u00ean th\u1ef1c h\u00e0nh trong v\u1edbi c\u01a1 s\u1edf d\u1eef li\u1ec7u trong Spring Boot b\u1ea1n c\u00f3 th\u1ec3 tham kh\u1ea3o ngay t\u00e0i li\u1ec7u c\u1ee7a <a href=\"https:\/\/docs.spring.io\/spring-data\/jpa\/docs\/current\/reference\/html\/#repositories\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Spring.io.<\/a><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1546.png\" alt=\"spring-boot-la-gi\" class=\"wp-image-28765\" width=\"731\" height=\"626\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1546.png 862w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1546-300x257.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1546-768x658.png 768w\" sizes=\"(max-width: 731px) 100vw, 731px\" \/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Qua b\u00e0i vi\u1ebft, TinoHost hi v\u1ecdng b\u1ea1n \u0111\u00e3 c\u00f3 nh\u1eefng ki\u1ebfn th\u1ee9c h\u1eefu \u00edch nh\u1ea5t v\u1ec1 Spring Boot, hi\u1ec3u \u0111\u01b0\u1ee3c Spring Boot l\u00e0 g\u00ec c\u0169ng nh\u01b0 v\u00ec sao b\u1ea1n n\u00ean h\u1ecdc Spring Boot \u0111\u1ec3 ph\u00e1t tri\u1ec3n s\u1ef1 nghi\u1ec7p l\u1eadp tr\u00ecnh c\u1ee7a m\u00ecnh. TinoHost ch\u00fac b\u1ea1n th\u00e0nh c\u00f4ng r\u1ef1c r\u1ee1 tr\u00ean con \u0111\u01b0\u1eddng l\u1eadp tr\u00ecnh c\u1ee7a m\u00ecnh!<\/p>\n\n\n\n<h2 id=\"Nh\u1eefng_c\u00e2u_h\u1ecfi_th\u01b0\u1eddng_g\u1eb7p_v\u1ec1_Spring_Boot\"><a id=\"post-28757-_ga6bz1pg9ylm\"><\/a><strong>Nh\u1eefng c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 Spring Boot<\/strong><\/h2>\n\n\n\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"C\u00f3_n\u00ean_h\u1ecdc_Spring_tr\u01b0\u1edbc_khi_h\u1ecdc_Spring_Boot_kh\u00f4ng?\">C\u00f3 n\u00ean h\u1ecdc Spring tr\u01b0\u1edbc khi h\u1ecdc Spring Boot kh\u00f4ng?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\">B\u1ea1n kh\u00f4ng nh\u1ea5t thi\u1ebft ph\u1ea3i h\u1ecdc Spring tr\u01b0\u1edbc sau \u0111\u00f3 m\u1edbi \u0111\u1ebfn Spring Boot. V\u00ec Spring Boot l\u00e0 s\u1ef1 c\u1ea3i ti\u1ebfn v\u01b0\u1ee3t b\u1eadc so v\u1edbi Spring v\u00e0 l\u01b0\u1ee3t b\u1edbt \u0111i nh\u1eefng \u0111i\u1ec3m r\u01b0\u1eddm r\u00e0 c\u1ee7a Spring. V\u1eady n\u00ean, b\u1ea1n c\u00f3 th\u1ec3 t\u00ecm hi\u1ec3u th\u1eb3ng v\u00e0o Spring Boot thay v\u00ec t\u00ecm hi\u1ec3u Spring tr\u01b0\u1edbc, Spring Boot sau theo ki\u1ec3u c\u1ed5 \u0111i\u1ec3n.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"IDE_l\u00e0_g\u00ec?\">IDE l\u00e0 g\u00ec?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\"><strong>IDE <\/strong>l\u00e0 vi\u1ebft t\u1eaft c\u1ee7a <strong>Integrated Development Environment<\/strong> &#8211; <em>M\u00f4i tr\u01b0\u1eddng ph\u00e1t tri\u1ec3n t\u00edch h\u1ee3p<\/em>. \u0110\u00e2y l\u00e0 m\u1ed9t ph\u1ea7n m\u1ec1m\/ \u1ee9ng d\u1ee5ng \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean c\u00f3 th\u1ec3 x\u00e2y d\u1ef1ng m\u1ed9t \u1ee9ng d\u1ee5ng ho\u00e0n ch\u1ec9nh b\u1eb1ng c\u00e1ch cung c\u1ea5p m\u00f4i tr\u01b0\u1eddng v\u00e0 c\u00e1c c\u00f4ng c\u1ee5 c\u1ea7n thi\u1ebft.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"Ph\u1ea7n_m\u1ec1m_l\u1eadp_tr\u00ecnh_Java_t\u1ed1t_nh\u1ea5t?\">Ph\u1ea7n m\u1ec1m l\u1eadp tr\u00ecnh Java t\u1ed1t nh\u1ea5t?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\">Khi h\u1ecdc \u0111\u1ea1i h\u1ecdc, t\u00f4i \u0111\u01b0\u1ee3c c\u00e1c th\u1ea7y h\u01b0\u1edbng d\u1eabn s\u1eed d\u1ee5ng NetBeans (ph\u1ea7n m\u1ec1m n\u00e0y mi\u1ec5n ph\u00ed) v\u00e0 Visual Studio (mi\u1ec5n ph\u00ed b\u1ea3n th\u00f4ng th\u01b0\u1eddng). Qua tr\u1ea3i nghi\u1ec7m, t\u00f4i th\u1ea5y 2 ph\u1ea7n m\u1ec1m n\u00e0y th\u1ef1c s\u1ef1 r\u1ea5t t\u1ed1t \u0111\u1ed1i v\u1edbi c\u00e1c b\u1ea1n sinh vi\u00ean. N\u1ebfu c\u00e1c b\u1ea1n \u0111\u1ea7u t\u01b0 h\u01a1n, c\u00f3 th\u1ec3 th\u1eed 2 IDE kh\u00e1c l\u00e0: Eclipse v\u00e0 IntelliJ v\u1edbi nhi\u1ec1u s\u1ef1 h\u1ed7 tr\u1ee3 h\u01a1n, c\u00e1c b\u1ea1n c\u00f3 th\u1ec3 l\u00e0m cho giao di\u1ec7n \u1ee9ng d\u1ee5ng lung linh m\u1ed9t c\u00e1ch d\u1ec5 d\u00e0ng h\u01a1n.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"L\u00e0m_sao_\u0111\u1ec3_nh\u1eadn_IntelliJ_IDEA_mi\u1ec5n_ph\u00ed?\">L\u00e0m sao \u0111\u1ec3 nh\u1eadn IntelliJ IDEA mi\u1ec5n ph\u00ed?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\">N\u1ebfu b\u1ea1n c\u00f2n l\u00e0 sinh vi\u00ean, b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng email c\u1ee7a nh\u00e0 tr\u01b0\u1eddng v\u00e0 \u0111\u0103ng k\u00fd g\u00f3i <a href=\"https:\/\/education.github.com\/pack\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">GitHub Student Developer Pack<\/a>. G\u00f3i n\u00e0y c\u00f3 l\u01b0\u1ee3ng h\u1ed7 tr\u1ee3 \u201csi\u00eau to kh\u1ed5ng l\u1ed3\u201d, 2 t\u00ean mi\u1ec1n mi\u1ec5n ph\u00ed, s\u1eed d\u1ee5ng d\u1ecbch v\u1ee5 c\u1ee7a Canva, Azure, Heroku, IntelliJ IDEA, PyCharm, GitHub Pro, Bootstrap Studio, Arduino Create Maker,&#8230; C\u00e1c ph\u1ea7n m\u1ec1m kh\u00e1c ho\u00e0n to\u00e0n mi\u1ec5n ph\u00ed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Theo c\u00e1 nh\u00e2n t\u00f4i th\u1ea5y, c\u00e1c tr\u01b0\u1eddng t\u1ea1i Vi\u1ec7t Nam c\u00f3 email c\u1ee7a sinh vi\u00ean FPT l\u00e0 \u0111\u0103ng k\u00fd \u0111\u01b0\u1ee3c duy\u1ec7t nhanh nh\u1ea5t.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"H\u1ecdc_Spring_Boot_mi\u1ec5n_ph\u00ed_\u1edf_\u0111\u00e2u?\">H\u1ecdc Spring Boot mi\u1ec5n ph\u00ed \u1edf \u0111\u00e2u?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\">B\u1ea1n c\u00f3 th\u1ec3 h\u1ecdc Spring Boot ho\u00e0n to\u00e0n mi\u1ec5n ph\u00ed t\u1ea1i <a href=\"https:\/\/spring.io\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Spring.io<\/a>. N\u1ebfu b\u1ea1n mu\u1ed1n h\u1ecdc ng\u00f4n ng\u1eef Java, Spring, Spring Boot c\u00f9ng nhi\u1ec1u ng\u00f4n ng\u1eef kh\u00e1c, b\u1ea1n c\u00f3 th\u1ec3 h\u1ecdc t\u1ea1i trang <a href=\"https:\/\/www.w3schools.com\/java\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Java Tutorial &#8211; W3School<\/a> ho\u00e0n to\u00e0n mi\u1ec5n ph\u00ed.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\n<script type=\"application\/ld+json\">\n\t{\n\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\"@type\": \"FAQPage\",\n\t\t\"mainEntity\": [\n\t\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"C\u00f3 n\u00ean h\u1ecdc Spring tr\u01b0\u1edbc khi h\u1ecdc Spring Boot kh\u00f4ng?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>B\u1ea1n kh\u00f4ng nh\u1ea5t thi\u1ebft ph\u1ea3i h\u1ecdc Spring tr\u01b0\u1edbc sau \u0111\u00f3 m\u1edbi \u0111\u1ebfn Spring Boot. V\u00ec Spring Boot l\u00e0 s\u1ef1 c\u1ea3i ti\u1ebfn v\u01b0\u1ee3t b\u1eadc so v\u1edbi Spring v\u00e0 l\u01b0\u1ee3t b\u1edbt \u0111i nh\u1eefng \u0111i\u1ec3m r\u01b0\u1eddm r\u00e0 c\u1ee7a Spring. V\u1eady n\u00ean, b\u1ea1n c\u00f3 th\u1ec3 t\u00ecm hi\u1ec3u th\u1eb3ng v\u00e0o Spring Boot thay v\u00ec t\u00ecm hi\u1ec3u Spring tr\u01b0\u1edbc, Spring Boot sau theo ki\u1ec3u c\u1ed5 \u0111i\u1ec3n.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"IDE l\u00e0 g\u00ec?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p><strong>IDE <\/strong>l\u00e0 vi\u1ebft t\u1eaft c\u1ee7a <strong>Integrated Development Environment<\/strong> - <em>M\u00f4i tr\u01b0\u1eddng ph\u00e1t tri\u1ec3n t\u00edch h\u1ee3p<\/em>. \u0110\u00e2y l\u00e0 m\u1ed9t ph\u1ea7n m\u1ec1m\/ \u1ee9ng d\u1ee5ng \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean c\u00f3 th\u1ec3 x\u00e2y d\u1ef1ng m\u1ed9t \u1ee9ng d\u1ee5ng ho\u00e0n ch\u1ec9nh b\u1eb1ng c\u00e1ch cung c\u1ea5p m\u00f4i tr\u01b0\u1eddng v\u00e0 c\u00e1c c\u00f4ng c\u1ee5 c\u1ea7n thi\u1ebft.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"Ph\u1ea7n m\u1ec1m l\u1eadp tr\u00ecnh Java t\u1ed1t nh\u1ea5t?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>Khi h\u1ecdc \u0111\u1ea1i h\u1ecdc, t\u00f4i \u0111\u01b0\u1ee3c c\u00e1c th\u1ea7y h\u01b0\u1edbng d\u1eabn s\u1eed d\u1ee5ng NetBeans (ph\u1ea7n m\u1ec1m n\u00e0y mi\u1ec5n ph\u00ed) v\u00e0 Visual Studio (mi\u1ec5n ph\u00ed b\u1ea3n th\u00f4ng th\u01b0\u1eddng). Qua tr\u1ea3i nghi\u1ec7m, t\u00f4i th\u1ea5y 2 ph\u1ea7n m\u1ec1m n\u00e0y th\u1ef1c s\u1ef1 r\u1ea5t t\u1ed1t \u0111\u1ed1i v\u1edbi c\u00e1c b\u1ea1n sinh vi\u00ean. N\u1ebfu c\u00e1c b\u1ea1n \u0111\u1ea7u t\u01b0 h\u01a1n, c\u00f3 th\u1ec3 th\u1eed 2 IDE kh\u00e1c l\u00e0: Eclipse v\u00e0 IntelliJ v\u1edbi nhi\u1ec1u s\u1ef1 h\u1ed7 tr\u1ee3 h\u01a1n, c\u00e1c b\u1ea1n c\u00f3 th\u1ec3 l\u00e0m cho giao di\u1ec7n \u1ee9ng d\u1ee5ng lung linh m\u1ed9t c\u00e1ch d\u1ec5 d\u00e0ng h\u01a1n.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"L\u00e0m sao \u0111\u1ec3 nh\u1eadn IntelliJ IDEA mi\u1ec5n ph\u00ed?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>N\u1ebfu b\u1ea1n c\u00f2n l\u00e0 sinh vi\u00ean, b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng email c\u1ee7a nh\u00e0 tr\u01b0\u1eddng v\u00e0 \u0111\u0103ng k\u00fd g\u00f3i <a>GitHub Student Developer Pack<\/a>. G\u00f3i n\u00e0y c\u00f3 l\u01b0\u1ee3ng h\u1ed7 tr\u1ee3 \u201csi\u00eau to kh\u1ed5ng l\u1ed3\u201d, 2 t\u00ean mi\u1ec1n mi\u1ec5n ph\u00ed, s\u1eed d\u1ee5ng d\u1ecbch v\u1ee5 c\u1ee7a Canva, Azure, Heroku, IntelliJ IDEA, PyCharm, GitHub Pro, Bootstrap Studio, Arduino Create Maker,... C\u00e1c ph\u1ea7n m\u1ec1m kh\u00e1c ho\u00e0n to\u00e0n mi\u1ec5n ph\u00ed.<\/p><p>Theo c\u00e1 nh\u00e2n t\u00f4i th\u1ea5y, c\u00e1c tr\u01b0\u1eddng t\u1ea1i Vi\u1ec7t Nam c\u00f3 email c\u1ee7a sinh vi\u00ean FPT l\u00e0 \u0111\u0103ng k\u00fd \u0111\u01b0\u1ee3c duy\u1ec7t nhanh nh\u1ea5t.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"H\u1ecdc Spring Boot mi\u1ec5n ph\u00ed \u1edf \u0111\u00e2u?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>B\u1ea1n c\u00f3 th\u1ec3 h\u1ecdc Spring Boot ho\u00e0n to\u00e0n mi\u1ec5n ph\u00ed t\u1ea1i <a>Spring.io<\/a>. N\u1ebfu b\u1ea1n mu\u1ed1n h\u1ecdc ng\u00f4n ng\u1eef Java, Spring, Spring Boot c\u00f9ng nhi\u1ec1u ng\u00f4n ng\u1eef kh\u00e1c, b\u1ea1n c\u00f3 th\u1ec3 h\u1ecdc t\u1ea1i trang <a>Java Tutorial - W3School<\/a> ho\u00e0n to\u00e0n mi\u1ec5n ph\u00ed.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t]\n\t}\n<\/script>\n\n\n","protected":false},"excerpt":{"rendered":"<p>Trong qu\u00e1 tr\u00ecnh t\u00ecm hi\u1ec3u, b\u1ea1n s\u1ebd nghe ng\u01b0\u1eddi h\u01b0\u1edbng d\u1eabn ho\u1eb7c t\u00e0i li\u1ec7u gi\u1edbi thi\u1ec7u v\u1ec1 Spring, Spring Boot, Node.js c\u00f9ng nhi\u1ec1u c\u00f4ng ngh\u1ec7 kh\u00e1c v\u00e0 g\u1ee3i \u00fd c\u00e1c b\u1ea1n n\u00ean t\u00ecm hi\u1ec3u nh\u1eefng c\u00f4ng ngh\u1ec7 n\u00e0y. N\u1ebfu b\u1ea1n \u0111ang t\u00ecm hi\u1ec3u v\u1ec1 Spring Boot, \u0111\u1eebng b\u1ecf qua b\u00e0i vi\u1ebft n\u00e0y! Trong b\u00e0i vi\u1ebft [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":28758,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5404],"tags":[6242],"class_list":["post-28757","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-webmasters","tag-kien-thuc-website"],"_links":{"self":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/28757","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/comments?post=28757"}],"version-history":[{"count":0,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/28757\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/media\/28758"}],"wp:attachment":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/media?parent=28757"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/categories?post=28757"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/tags?post=28757"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}