{"id":18275,"date":"2021-12-21T05:14:35","date_gmt":"2021-12-20T22:14:35","guid":{"rendered":"https:\/\/huongdanjava.com\/?p=18275"},"modified":"2021-12-21T05:14:35","modified_gmt":"2021-12-20T22:14:35","slug":"gioi-thieu-ve-microprofile","status":"publish","type":"post","link":"https:\/\/huongdanjava.com\/vi\/gioi-thieu-ve-microprofile.html","title":{"rendered":"Gi\u1edbi thi\u1ec7u v\u1ec1 MicroProfile"},"content":{"rendered":"<p><a href=\"https:\/\/microprofile.io\/\" target=\"_blank\" rel=\"noopener\">MicroProfile<\/a> l\u00e0 m\u1ed9t t\u1eadp h\u1ee3p c\u00e1c APIs d\u1ef1a tr\u00ean Jarkata EE gi\u00fap ch\u00fang ta d\u1ec5 d\u00e0ng x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng Java Enterprise theo m\u00f4 h\u00ecnh ki\u1ebfn tr\u00fac microservices. C\u00e1c APIs n\u00e0y bao g\u1ed3m:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-19163 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/12\/gioi-thieu-ve-microprofile-1.png\" alt=\"\" width=\"700\" height=\"398\" \/>Trong \u0111\u00f3:<\/p>\n<ul>\n<li>Open Tracing d\u00f9ng \u0111\u1ec3 theo d\u00f5i flow c\u1ee7a m\u1ed9t request t\u1edbi c\u00e1c service.<\/li>\n<li>Open API d\u00f9ng \u0111\u1ec3 t\u1ea1o API documentation, ch\u00fang ta c\u0169ng th\u01b0\u1eddng hay g\u1ecdi n\u00f3 l\u00e0 Swagger. C\u00e1c b\u1ea1n c\u00f3 th\u1ec3 xem th\u00eam <a href=\"https:\/\/huongdanjava.com\/vi\/tao-restful-api-document-su-dung-springfox-cho-swagger-trong-spring-boot.html\" target=\"_blank\" rel=\"noopener\">Swagger<\/a> trong Spring Boot.<\/li>\n<li>Rest Client d\u00f9ng \u0111\u1ec3 g\u1ecdi t\u1edbi m\u1ed9t RESTful Web Service, t\u01b0\u01a1ng t\u1ef1 nh\u01b0 RestTemplate ho\u1eb7c <a href=\"https:\/\/huongdanjava.com\/vi\/consume-reactive-web-service-su-dung-webclient-cua-spring-webflux.html\" target=\"_blank\" rel=\"noopener\">WebClient<\/a> trong Spring.<\/li>\n<li>Config d\u00f9ng \u0111\u1ec3 l\u00e0m nh\u1eefng vi\u1ec7c li\u00ean quan \u0111\u1ebfn c\u1ea5u h\u00ecnh c\u1ee7a \u1ee9ng d\u1ee5ng.<\/li>\n<li>Fault Tolerance d\u00f9ng \u0111\u1ec3 handle c\u00e1c tr\u01b0\u1eddng h\u1ee3p \u1ee9ng d\u1ee5ng \u0111ang b\u1ecb l\u1ed7i.<\/li>\n<li>Metrics d\u00f9ng \u0111\u1ec3 \u0111\u1ecbnh ngh\u0129a c\u00e1c metrix c\u1ee7a \u1ee9ng d\u1ee5ng.<\/li>\n<li>JWT Propagation d\u00f9ng \u0111\u1ec3 l\u00e0m vi\u1ec7c v\u1edbi access token trong OAuth2 v\u00e0 OpenId Connect.<\/li>\n<li>Health expose c\u00e1c th\u00f4ng tin runtime c\u1ee7a c\u00e1c services.<\/li>\n<li>CDI c\u1ee7a Jakarta EE, h\u1ed7 tr\u1ee3 dependency injection trong \u1ee9ng d\u1ee5ng.<\/li>\n<li>JSON-P (JSON Processing) d\u00f9ng \u0111\u1ec3 convert Java object POJO qua JSON.<\/li>\n<li>JAX-RS hi\u1ec7n th\u1ef1c RESTful Web Service.<\/li>\n<li>JSON-B (JSON Binding) d\u00f9ng \u0111\u1ec3 convert JSON qua Java object.<\/li>\n<li>Jakarta Annotation c\u1ee7a Jakarta EE, \u0111\u1ecbnh ngh\u0129a m\u1ed9t t\u1eadp c\u00e1c annotation \u0111\u1ec3 l\u00e0m vi\u1ec7c v\u1edbi c\u00e1c \u1ee9ng d\u1ee5ng Jakarta EE.<\/li>\n<\/ul>\n<p>Ch\u00fang ta c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng c\u00f4ng c\u1ee5 MicroProfile Starter \u0111\u1ec3 t\u1ea1o m\u1edbi project MicroProfile, t\u01b0\u01a1ng t\u1ef1 nh\u01b0 Spring framework, t\u1ea1i <a href=\"https:\/\/start.microprofile.io\/\" target=\"_blank\" rel=\"noopener\">https:\/\/start.microprofile.io\/<\/a>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-19170 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/12\/gioi-thieu-ve-microprofile-2.png\" alt=\"\" width=\"700\" height=\"589\" \/><\/p>\n<p>\u0110\u1ec3 l\u00e0m v\u00ed d\u1ee5 cho b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh s\u1ebd t\u1ea1o m\u1edbi m\u1ed9t service s\u1eed d\u1ee5ng MicroProfile nh\u01b0 sau:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-19198 size-full aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/12\/gioi-thieu-ve-microprofile-3.png\" alt=\"\" width=\"700\" height=\"529\" \/><\/p>\n<p>C\u00e1c b\u1ea1n kh\u00f4ng c\u1ea7n select c\u00e1c APIs nh\u00e9! M\u1eb7c \u0111\u1ecbnh th\u00ec t\u1ea5t c\u1ea3 c\u00e1c APIs c\u1ee7a MicroProfile s\u1ebd \u0111\u01b0\u1ee3c khai b\u00e1o trong \u1ee9ng d\u1ee5ng.<\/p>\n<p>Nh\u1ea5n DOWNLOAD \u0111\u1ec3 t\u1ea3i project v\u1ec1 m\u00e1y, sau \u0111\u00f3 th\u00ec import n\u00f3 v\u1edbi Maven project v\u00e0o IDE m\u00e0 c\u00e1c b\u1ea1n \u0111ang s\u1eed d\u1ee5ng nh\u00e9!<\/p>\n<p>K\u1ebft qu\u1ea3 c\u1ee7a m\u00ecnh nh\u01b0 sau:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-19199 size-full aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/12\/gioi-thieu-ve-microprofile-4.png\" alt=\"\" width=\"700\" height=\"525\" \/><\/p>\n<p>Ki\u1ec3m tra External Libraries c\u1ee7a Maven project n\u00e0y:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-19178 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/12\/gioi-thieu-ve-microprofile-5.png\" alt=\"\" width=\"700\" height=\"391\" \/><\/p>\n<p>c\u00e1c b\u1ea1n s\u1ebd th\u1ea5y ngo\u00e0i c\u00e1c dependencies c\u1ee7a MicroProfile, ch\u00fang ta c\u00f2n th\u1ea5y c\u00e1c dependencies c\u1ee7a Jakarta EE. Ch\u00fang to\u00e0n l\u00e0 c\u00e1c APIs, kh\u00f4ng c\u00f3 implementation n\u00ean \u0111\u1ec3 ch\u1ea1y \u0111\u01b0\u1ee3c \u1ee9ng d\u1ee5ng MicroProfile, ch\u00fang ta ph\u1ea3i s\u1eed d\u1ee5ng c\u00e1c server runtime c\u00f3 h\u1ed7 tr\u1ee3 cho MicroProfile nh\u01b0 Open Liberty, Payara, WildFly,&#8230; c\u00e1c b\u1ea1n nh\u00e9!<\/p>\n<p>M\u00ecnh \u0111\u00e3 ch\u1ecdn s\u1eed d\u1ee5ng Open Liberty v\u1edbi <a href=\"https:\/\/huongdanjava.com\/vi\/chay-ung-dung-web-voi-liberty-maven-plugin.html\" target=\"_blank\" rel=\"noopener\">Liberty Maven plugin<\/a> \u0111\u1ec3 ch\u1ea1y v\u00ed d\u1ee5 cho b\u00e0i vi\u1ebft n\u00e0y nh\u01b0 sau:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-19195 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/12\/gioi-thieu-ve-microprofile-6.png\" alt=\"\" width=\"700\" height=\"592\" \/><\/p>\n<p>N\u1ed9i dung c\u1ee7a t\u1eadp tin server.xml \u0111\u01b0\u1ee3c generated nh\u01b0 sau:<\/p>\n<pre class=\"lang:xhtml decode:true \">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;server description=\"${project.name}\"&gt;\r\n  &lt;featureManager&gt;\r\n    &lt;feature&gt;microProfile-4.0&lt;\/feature&gt;\r\n  &lt;\/featureManager&gt;\r\n  \r\n  &lt;httpEndpoint id=\"defaultHttpEndpoint\"\r\n                httpPort=\"9080\"\r\n                httpsPort=\"9443\"\/&gt;\r\n\r\n  &lt;webApplication location=\"${project.name}.war\" contextRoot=\"${app.context.root}\"&gt;\r\n    &lt;classloader apiTypeVisibility=\"+third-party\"\/&gt;\r\n  &lt;\/webApplication&gt;\r\n  &lt;mpMetrics authentication=\"false\"\/&gt;\r\n\r\n  &lt;!-- This is the keystore that will be used by SSL and by JWT. --&gt;\r\n  &lt;keyStore id=\"defaultKeyStore\" location=\"public.jks\" type=\"JKS\" password=\"atbash\"\/&gt;\r\n  \r\n  &lt;!-- The MP JWT configuration that injects the caller's JWT into a ResourceScoped bean for inspection. --&gt;\r\n  &lt;mpJwt id=\"jwtUserConsumer\" keyName=\"theKeyId\" audiences=\"targetService\" issuer=\"${jwt.issuer}\"\/&gt;\r\n&lt;\/server&gt;\r\n<\/pre>\n<p>Nh\u01b0 c\u00e1c b\u1ea1n th\u1ea5y, feature microProfile-4.0 \u0111\u01b0\u1ee3c khai b\u00e1o \u0111\u1ec3 s\u1eed d\u1ee5ng trong th\u1ebb &lt;featureManager&gt;. Ngo\u00e0i ra c\u00f2n c\u00f3 m\u1ed9t s\u1ed1 c\u1ea5u h\u00ecnh kh\u00e1c. C\u00e1c properties nh\u01b0 project.name, jwt.issuer, app.context.root \u0111\u01b0\u1ee3c khai b\u00e1o trong th\u1ebb &lt;bootstrapProperties&gt; c\u1ee7a Liberty Maven plugin trong t\u1eadp tin pom.xml c\u00e1c b\u1ea1n nh\u00e9!<\/p>\n<p>Ch\u1ea1y project v\u1edbi Liberty Maven plugin, c\u00e1c b\u1ea1n c\u00f3 th\u1ec3 access t\u1edbi endpoint m\u1eb7c \u0111\u1ecbnh c\u1ee7a generated project l\u00e0 http:\/\/localhost:9080\/data\/hello, k\u1ebft qu\u1ea3 nh\u01b0 sau:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-19200 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/12\/gioi-thieu-ve-microprofile-7.png\" alt=\"\" width=\"700\" height=\"345\" \/><\/p>\n<p>Ngo\u00e0i ra th\u00ec v\u1edbi feature microProfile-4.0 \u0111\u01b0\u1ee3c khai b\u00e1o \u0111\u1ec3 h\u1ed7 tr\u1ee3 th\u00ec ch\u00fang ta c\u00f2n c\u00f3 th\u1ec3 access t\u1edbi m\u1ed9t s\u1ed1 endpoint kh\u00e1c nh\u01b0:<\/p>\n<p>OpenAPI \u0111\u1ec3 xem API documentation http:\/\/localhost:9080\/openapi\/ui\/:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-19201 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/12\/gioi-thieu-ve-microprofile-8.png\" alt=\"\" width=\"700\" height=\"450\" \/><\/p>\n<p>Health check service http:\/\/localhost:9080\/health\/:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-19202 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/12\/gioi-thieu-ve-microprofile-9.png\" alt=\"\" width=\"700\" height=\"357\" \/><\/p>\n<p>Metrics http:\/\/localhost:9080\/metrics\/:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-19203 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/12\/gioi-thieu-ve-microprofile-10.png\" alt=\"\" width=\"700\" height=\"658\" \/><\/p>\n<p>Tu\u1ef3 theo nhu c\u1ea7u th\u00ec c\u00e1c b\u1ea1n h\u00e3y s\u1eed d\u1ee5ng MicroProfile cho ph\u00f9 h\u1ee3p nh\u00e9!<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-right kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;right&quot;,&quot;id&quot;:&quot;18275&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;4&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;0\\\/5 - (0 votes)&quot;,&quot;size&quot;:&quot;24&quot;,&quot;title&quot;:&quot;Gi\u1edbi thi\u1ec7u v\u1ec1 MicroProfile&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} - ({count} {votes})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 19.2px;\">\n            <span class=\"kksr-muted\"><\/span>\n    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>MicroProfile l\u00e0 m\u1ed9t t\u1eadp h\u1ee3p c\u00e1c APIs d\u1ef1a tr\u00ean Jarkata EE gi\u00fap ch\u00fang ta d\u1ec5 d\u00e0ng x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng Java Enterprise theo m\u00f4 h\u00ecnh ki\u1ebfn tr\u00fac microservices. C\u00e1c APIs n\u00e0y bao g\u1ed3m: Trong \u0111\u00f3: Open Tracing d\u00f9ng \u0111\u1ec3 theo d\u00f5i flow c\u1ee7a m\u1ed9t&hellip; <a href=\"https:\/\/huongdanjava.com\/vi\/gioi-thieu-ve-microprofile.html\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":19164,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2165],"tags":[],"class_list":["post-18275","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microprofile","clearfix"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Gi\u1edbi thi\u1ec7u v\u1ec1 MicroProfile - Huong Dan Java<\/title>\n<meta name=\"description\" content=\"Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh gi\u1edbi thi\u1ec7u v\u1edbi c\u00e1c b\u1ea1n v\u1ec1 MicroProfile.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/huongdanjava.com\/vi\/gioi-thieu-ve-microprofile.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Gi\u1edbi thi\u1ec7u v\u1ec1 MicroProfile - Huong Dan Java\" \/>\n<meta property=\"og:description\" content=\"Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh gi\u1edbi thi\u1ec7u v\u1edbi c\u00e1c b\u1ea1n v\u1ec1 MicroProfile.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/huongdanjava.com\/vi\/gioi-thieu-ve-microprofile.html\" \/>\n<meta property=\"og:site_name\" content=\"Huong Dan Java\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/nhkhanh2406\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/nhkhanh2406\" \/>\n<meta property=\"article:published_time\" content=\"2021-12-20T22:14:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/12\/micro-profile.png\" \/>\n\t<meta property=\"og:image:width\" content=\"200\" \/>\n\t<meta property=\"og:image:height\" content=\"200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Khanh Nguyen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/KhanhNguyenJ\" \/>\n<meta name=\"twitter:site\" content=\"@KhanhNguyenJ\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Khanh Nguyen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/gioi-thieu-ve-microprofile.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/gioi-thieu-ve-microprofile.html\"},\"author\":{\"name\":\"Khanh Nguyen\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"headline\":\"Gi\u1edbi thi\u1ec7u v\u1ec1 MicroProfile\",\"datePublished\":\"2021-12-20T22:14:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/gioi-thieu-ve-microprofile.html\"},\"wordCount\":729,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"image\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/gioi-thieu-ve-microprofile.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/micro-profile.png\",\"articleSection\":[\"MicroProfile\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/gioi-thieu-ve-microprofile.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/gioi-thieu-ve-microprofile.html\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/gioi-thieu-ve-microprofile.html\",\"name\":\"Gi\u1edbi thi\u1ec7u v\u1ec1 MicroProfile - Huong Dan Java\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/gioi-thieu-ve-microprofile.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/gioi-thieu-ve-microprofile.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/micro-profile.png\",\"datePublished\":\"2021-12-20T22:14:35+00:00\",\"description\":\"Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh gi\u1edbi thi\u1ec7u v\u1edbi c\u00e1c b\u1ea1n v\u1ec1 MicroProfile.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/gioi-thieu-ve-microprofile.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/gioi-thieu-ve-microprofile.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/gioi-thieu-ve-microprofile.html#primaryimage\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/micro-profile.png\",\"contentUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/micro-profile.png\",\"width\":200,\"height\":200},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/vi\\\/gioi-thieu-ve-microprofile.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/huongdanjava.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Gi\u1edbi thi\u1ec7u v\u1ec1 MicroProfile\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#website\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/\",\"name\":\"Huong Dan Java\",\"description\":\"Java development tutorials\",\"publisher\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/huongdanjava.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\",\"name\":\"Khanh Nguyen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"contentUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"width\":1267,\"height\":1517,\"caption\":\"Khanh Nguyen\"},\"logo\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\"},\"description\":\"I love Java and everything related to Java.\",\"sameAs\":[\"https:\\\/\\\/huongdanjava.com\",\"https:\\\/\\\/www.facebook.com\\\/nhkhanh2406\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/KhanhNguyenJ\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Gi\u1edbi thi\u1ec7u v\u1ec1 MicroProfile - Huong Dan Java","description":"Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh gi\u1edbi thi\u1ec7u v\u1edbi c\u00e1c b\u1ea1n v\u1ec1 MicroProfile.","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:\/\/huongdanjava.com\/vi\/gioi-thieu-ve-microprofile.html","og_locale":"en_US","og_type":"article","og_title":"Gi\u1edbi thi\u1ec7u v\u1ec1 MicroProfile - Huong Dan Java","og_description":"Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh gi\u1edbi thi\u1ec7u v\u1edbi c\u00e1c b\u1ea1n v\u1ec1 MicroProfile.","og_url":"https:\/\/huongdanjava.com\/vi\/gioi-thieu-ve-microprofile.html","og_site_name":"Huong Dan Java","article_publisher":"https:\/\/www.facebook.com\/nhkhanh2406","article_author":"https:\/\/www.facebook.com\/nhkhanh2406","article_published_time":"2021-12-20T22:14:35+00:00","og_image":[{"width":200,"height":200,"url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/12\/micro-profile.png","type":"image\/png"}],"author":"Khanh Nguyen","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/KhanhNguyenJ","twitter_site":"@KhanhNguyenJ","twitter_misc":{"Written by":"Khanh Nguyen","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/huongdanjava.com\/vi\/gioi-thieu-ve-microprofile.html#article","isPartOf":{"@id":"https:\/\/huongdanjava.com\/vi\/gioi-thieu-ve-microprofile.html"},"author":{"name":"Khanh Nguyen","@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"headline":"Gi\u1edbi thi\u1ec7u v\u1ec1 MicroProfile","datePublished":"2021-12-20T22:14:35+00:00","mainEntityOfPage":{"@id":"https:\/\/huongdanjava.com\/vi\/gioi-thieu-ve-microprofile.html"},"wordCount":729,"commentCount":0,"publisher":{"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"image":{"@id":"https:\/\/huongdanjava.com\/vi\/gioi-thieu-ve-microprofile.html#primaryimage"},"thumbnailUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/12\/micro-profile.png","articleSection":["MicroProfile"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/huongdanjava.com\/vi\/gioi-thieu-ve-microprofile.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/huongdanjava.com\/vi\/gioi-thieu-ve-microprofile.html","url":"https:\/\/huongdanjava.com\/vi\/gioi-thieu-ve-microprofile.html","name":"Gi\u1edbi thi\u1ec7u v\u1ec1 MicroProfile - Huong Dan Java","isPartOf":{"@id":"https:\/\/huongdanjava.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/huongdanjava.com\/vi\/gioi-thieu-ve-microprofile.html#primaryimage"},"image":{"@id":"https:\/\/huongdanjava.com\/vi\/gioi-thieu-ve-microprofile.html#primaryimage"},"thumbnailUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/12\/micro-profile.png","datePublished":"2021-12-20T22:14:35+00:00","description":"Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh gi\u1edbi thi\u1ec7u v\u1edbi c\u00e1c b\u1ea1n v\u1ec1 MicroProfile.","breadcrumb":{"@id":"https:\/\/huongdanjava.com\/vi\/gioi-thieu-ve-microprofile.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/huongdanjava.com\/vi\/gioi-thieu-ve-microprofile.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/huongdanjava.com\/vi\/gioi-thieu-ve-microprofile.html#primaryimage","url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/12\/micro-profile.png","contentUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/12\/micro-profile.png","width":200,"height":200},{"@type":"BreadcrumbList","@id":"https:\/\/huongdanjava.com\/vi\/gioi-thieu-ve-microprofile.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/huongdanjava.com\/"},{"@type":"ListItem","position":2,"name":"Gi\u1edbi thi\u1ec7u v\u1ec1 MicroProfile"}]},{"@type":"WebSite","@id":"https:\/\/huongdanjava.com\/#website","url":"https:\/\/huongdanjava.com\/","name":"Huong Dan Java","description":"Java development tutorials","publisher":{"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/huongdanjava.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d","name":"Khanh Nguyen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","contentUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","width":1267,"height":1517,"caption":"Khanh Nguyen"},"logo":{"@id":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg"},"description":"I love Java and everything related to Java.","sameAs":["https:\/\/huongdanjava.com","https:\/\/www.facebook.com\/nhkhanh2406","https:\/\/x.com\/https:\/\/twitter.com\/KhanhNguyenJ"]}]}},"_links":{"self":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/18275","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/comments?post=18275"}],"version-history":[{"count":14,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/18275\/revisions"}],"predecessor-version":[{"id":19204,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/18275\/revisions\/19204"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/media\/19164"}],"wp:attachment":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/media?parent=18275"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/categories?post=18275"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/tags?post=18275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}