{"id":13454,"date":"2019-08-02T11:33:04","date_gmt":"2019-08-02T09:33:04","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=13454"},"modified":"2023-08-20T14:55:16","modified_gmt":"2023-08-20T12:55:16","slug":"javalin-framwork-nicht-nur-fuer-java-vor-ein-paar-tagen-in-version-3-3-0-veroeffentlicht","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=13454","title":{"rendered":"Javalin Framwork nicht nur f\u00fcr Java vor ein paar Tagen in Version 3.3.0 ver\u00f6ffentlicht"},"content":{"rendered":"<p>Javalin wurde vor ein paar Tagen in der Version 3.3.0 ver\u00f6ffentlicht. Was dieser Framwork kann, zeigt diese Mindmap:<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/08\/javalin.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/08\/javalin.png\" alt=\"\" width=\"2480\" height=\"1684\" class=\"aligncenter size-full wp-image-13455\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/08\/javalin.png 2480w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/08\/javalin-300x204.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/08\/javalin-768x521.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/08\/javalin-1024x695.png 1024w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<p>Mit einem Zweizeiler kann in Java schnell eine Anwendung erstellt werden. Es wird nur die Abh\u00e4ngkeit in der pom.xml erwartet:<!--more--><\/p>\n<pre class=\"lang:xhtml decode:true \" >&lt;dependencies&gt;\r\n\t\t&lt;dependency&gt;\r\n\t\t\t&lt;groupId&gt;io.javalin&lt;\/groupId&gt;\r\n\t\t\t&lt;artifactId&gt;javalin&lt;\/artifactId&gt;\r\n\t\t\t&lt;version&gt;3.3.0&lt;\/version&gt;\r\n\t\t&lt;\/dependency&gt;\r\n\t\t&lt;dependency&gt;\r\n\t\t\t&lt;groupId&gt;org.slf4j&lt;\/groupId&gt;\r\n\t\t\t&lt;artifactId&gt;slf4j-simple&lt;\/artifactId&gt;\r\n\t\t\t&lt;version&gt;1.7.26&lt;\/version&gt;\r\n\t\t&lt;\/dependency&gt;\r\n&lt;\/dependencies&gt;<\/pre>\n<p>Die slf4 ist optional, aber das logging ist schon wichtig.<\/p>\n<p>Dann ein Beispiel:<\/p>\n<pre class=\"lang:java decode:true \" >import io.javalin.Javalin;\r\n\r\n\/**\r\n * Demo Zeitpunkt Service.\r\n * \r\n * @author Thomas Wenzlaff\r\n *\r\n *\/\r\npublic class DatumsService {\r\n\r\n\tprivate static final int PORT = 4711;\r\n\r\n\t\/**\r\n\t * https:\/\/github.com\/tipsy\/javalin\r\n\t * \r\n\t * Aufruf im Browser z.B.: http:\/\/localhost:4711\/zeitpunkt\r\n\t * http:\/\/localhost:4711\/version \r\n         * http:\/\/localhost:4711\/copyright\r\n\t * http:\/\/localhost:4711\/\r\n\t * \r\n\t * @author Thomas Wenzlaff\r\n\t * \r\n\t * @param args\r\n\t *\/\r\n\tpublic static void main(String[] args) {\r\n\r\n\t\tJavalin app = Javalin.create().start(PORT);\r\n\r\n\t\tapp.get(\"\/zeitpunkt\", ctx -&gt; ctx\r\n\t\t\t\t.result(\"Der aktuelle Zeitpunkt mit Javalin in Millisekunden: \" + System.currentTimeMillis()));\r\n\r\n\t\tapp.get(\"\/version\", ctx -&gt; ctx.result(\"1.0.0\"));\r\n\r\n\t\tapp.get(\"\/copyright\", ctx -&gt; ctx.result(\"Thomas Wenzlaff (c) 2019\"));\r\n\r\n\t\tapp.get(\"\/\", ctx -&gt; ctx.result(\"Javalin Demo von Thomas Wenzlaff (c) 2019\"));\r\n\t}\r\n}<\/pre>\n<p>Wird das Programm gestartet, ist der Service in 383 ms bereit:<\/p>\n<pre class=\"lang:default decode:true \" >[main] INFO io.javalin.Javalin - \r\n           __                      __ _\r\n          \/ \/____ _ _   __ ____ _ \/ \/(_)____\r\n     __  \/ \/\/ __ `\/| | \/ \/\/ __ `\/\/ \/\/ \/\/ __ \\\r\n    \/ \/_\/ \/\/ \/_\/ \/ | |\/ \/\/ \/_\/ \/\/ \/\/ \/\/ \/ \/ \/\r\n    \\____\/ \\__,_\/  |___\/ \\__,_\/\/_\/\/_\/\/_\/ \/_\/\r\n\r\n        https:\/\/javalin.io\/documentation\r\n\r\n[main] INFO org.eclipse.jetty.util.log - Logging initialized @553ms to org.eclipse.jetty.util.log.Slf4jLog\r\n[main] INFO io.javalin.Javalin - Starting Javalin ...\r\n[main] INFO io.javalin.Javalin - Listening on http:\/\/localhost:4711\/\r\n[main] INFO io.javalin.Javalin - Javalin started in 383ms \\o\/<\/pre>\n<p>Aufruf dann im Browser zb. http:\/\/localhost:4711\/<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/08\/Bildschirmfoto-2019-08-02-um-11.28.28.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/08\/Bildschirmfoto-2019-08-02-um-11.28.28.png\" alt=\"\" width=\"347\" height=\"38\" class=\"aligncenter size-full wp-image-13457\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/08\/Bildschirmfoto-2019-08-02-um-11.28.28.png 347w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/08\/Bildschirmfoto-2019-08-02-um-11.28.28-300x33.png 300w\" sizes=\"auto, (max-width: 347px) 100vw, 347px\" \/><\/a><\/p>\n<p>oder mit dem Zeitservice:<br \/>\nhttp:\/\/localhost:4711\/zeitpunkt<br \/>\n<a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/08\/Bildschirmfoto-2019-08-02-um-11.28.59.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/08\/Bildschirmfoto-2019-08-02-um-11.28.59.png\" alt=\"\" width=\"551\" height=\"38\" class=\"aligncenter size-full wp-image-13456\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/08\/Bildschirmfoto-2019-08-02-um-11.28.59.png 551w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/08\/Bildschirmfoto-2019-08-02-um-11.28.59-300x21.png 300w\" sizes=\"auto, (max-width: 551px) 100vw, 551px\" \/><\/a><\/p>\n<p>Weitere Infos auf der <a href=\"https:\/\/javalin.io\/\" rel=\"noopener noreferrer\" target=\"_blank\">Javaline<\/a> oder auf <a href=\"https:\/\/github.com\/javalin\/javalin\" rel=\"noopener noreferrer\" target=\"_blank\">GitHub<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Javalin wurde vor ein paar Tagen in der Version 3.3.0 ver\u00f6ffentlicht. Was dieser Framwork kann, zeigt diese Mindmap: Mit einem Zweizeiler kann in Java schnell eine Anwendung erstellt werden. Es wird nur die Abh\u00e4ngkeit in der pom.xml erwartet:<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[220,5,79],"tags":[3726,3725,2182,2487],"class_list":["post-13454","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-java","category-programmierung","tag-framwork","tag-javalin","tag-programmierung","tag-rest"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/13454","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=13454"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/13454\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13454"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13454"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13454"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}