{"id":3389,"date":"2020-03-09T03:08:50","date_gmt":"2020-03-09T03:08:50","guid":{"rendered":"https:\/\/www.baeldung.com\/?p=73063"},"modified":"2020-03-09T03:08:50","modified_gmt":"2020-03-09T03:08:50","slug":"java-weekly-issue-324","status":"publish","type":"post","link":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/2020\/03\/09\/java-weekly-issue-324\/","title":{"rendered":"Java Weekly, Issue 324"},"content":{"rendered":"<p class=\"syndicated-attribution\"><meta name= \\\"keywords \\\" content= \\\"\u96fb\u5b50\u8a08\u7b97\u6a5f, \u6559\u80b2, IT \u96fb\u8166\u73ed,\u96fb\u8166\u88dc\u7fd2\uff0c \u96fb\u8166\u73ed\uff0c \u5bb6\u6559\uff0c \u79c1\u4eba\u8001\u5e2b\uff0c \u8cc7\u8a0a\u6280\u8853\uff0c \u7a0b\u5e8f\u8a2d\u8a08\uff0c \u96fb\u5b50\u8a08\u7b97\u6a5f\uff0c \u904a\u6232\uff0c \u860b\u679c\uff0c \u96fb\u5f71\uff0c \u8a08\u7b97\u6a5f\uff0c\u7de8\u78bc\uff0c Java\uff0c C\/C++\uff0c JavaScript\uff0c PHP\uff0c HTML\uff0c CSS\uff0c MySQL\uff0c mobile\uff0c Android\uff0c \u52d5\u6f2b\uff0c Python\uff0c teacher\uff0c \u88dc\u7fd2\uff0c \u96fb\u8166\u88dc\u7fd2 \u8cc7\u8a0a, \u7535\u5b50\u8ba1\u7b97\u673a, IT ,Game, apple, movie, Computer,student,Java,\u6559\u80b2, ,\u5b66\u751f, \u5b66\u4e60, learn, \u6559\u5b66,  Android, apple,anime, animation, \u4fe1\u606f\u6280\u672f, \u7a0b\u5e8f\u8bbe\u8ba1, \u79fb\u52a8\u7535\u8bdd, \u8cc7\u8a0a\u79d1\u6280,Game, Jeu, Juego,Call Of Duty ,\u4f7f\u547d\u53ec\u559a , \u6e38\u620f, \u7535\u5b50\u6e38\u620f,, \u591a\u4eba\u7535\u5b50\u6e38\u620f, \u7f51\u7edc\u6e38\u620f\uff0conline\uff0conline game, \u624b\u673a\u6e38\u620f, mobile \\\"><\/p>\n<h2 data-id=\"spring-and-java-1\"><strong>1. Spring and Java<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"spring-and-java-1\"><\/div>\n<h4><a href=\"https:\/\/spring.io\/blog\/2020\/03\/09\/getting-started-with-rsocket-spring-boot-client\"><strong>&gt;&gt; Getting Started With RSocket: Spring Boot Client<\/strong><\/a> [<span style=\"color: #800000\">spring.io<\/span>]<\/h4>\n<p>A quick tutorial that <strong>uses Spring Shell to build and run a simple RSocket client<\/strong> for sending request-response messages to your RSocket server.<\/p>\n<h4><a href=\"https:\/\/www.infoq.com\/articles\/java-native-cli-graalvm-picocli\/\"><strong>&gt;&gt; Build Great Native CLI Apps in Java with Graalvm and Picocli<\/strong><\/a> [<span style=\"color: #800000\">infoq.com<\/span>]<\/h4>\n<p>A great combo for <strong>building easy-to-distribute, native images of command-line applications<\/strong> written in Java or any JVM-based language.<\/p>\n<h4><a href=\"https:\/\/4comprehension.com\/busy-developers-guide-to-java-9-10-11-12-13-and-above\/\"><strong>&gt;&gt; Busy Developers\u2019 Guide to Java 9, 10, 11, 12, 13, and Above<\/strong><\/a> [<span style=\"color: #800000\">4comprehension.com<\/span>]<\/h4>\n<p>And a curated list of the <strong>top features since Java 8<\/strong>.<\/p>\n<h4><strong>Also worth reading:<\/strong><\/h4>\n<ul>\n<li>\n<h4><a href=\"https:\/\/tanzu.vmware.com\/content\/blog\/microservices-essentials-getting-started-with-spring-cloud-gateway\"><strong>&gt;&gt; Microservices essentials: Getting started with Spring Cloud Gateway<\/strong><\/a> [<span style=\"color: #800000\">tanzu.vmware.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.frankel.ch\/map-merge-compute\/\"><strong><span class=\"t-bg-white l-pa2 l-d-i\">&gt;&gt; Map merge and compute, hidden API diamonds<\/span><\/strong><\/a><span class=\"t-bg-white l-pa2 l-d-i\"> [<span style=\"color: #800000\">blog.frankel.ch<\/span>]<\/span><\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/reflectoring.io\/spring-security-password-handling\/\"><strong>&gt;&gt; Handling Passwords with Spring Boot and Spring Security<\/strong><\/a> [<span style=\"color: #800000\">reflectoring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/vladmihalcea.com\/multiline-string-java-text-blocks\/\"><strong>&gt;&gt; Multiline String literals with Java Text Blocks<\/strong><\/a> [<span style=\"color: #800000\">vladmihalcea.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.devdiaries.net\/blog\/Java-Interview-Questions-Multithreading\/\"><strong>&gt;&gt; Multithreading in Java. Java synchronization and concurrency. The most important information for a Java Developer interview<\/strong><\/a> [<span style=\"color: #800000\">devdiaries.net<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"http:\/\/blog.code-cop.org\/2020\/03\/tdd-vaadin-ui.html\"><strong>&gt;&gt; TDD a Vaadin UI<\/strong><\/a> [<span style=\"color: #800000\">blog.code-cop.org<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.scrapingbee.com\/java-webscraping-book\/\"><strong>&gt;&gt; The Java Web Scraping Handbook<\/strong><\/a> [<span style=\"color: #800000\">scrapingbee.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/info.michael-simons.eu\/2020\/03\/06\/polyglot-programming-on-the-graalvm\/\"><strong>&gt;&gt; Polyglot Programming on the GraalVM<\/strong><\/a> [<span style=\"color: #800000\">info.michael-simons.eu<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<p><strong>Webinars and presentations:<\/strong><\/p>\n<ul>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2020\/03\/06\/a-bootiful-podcast-spring-i-o-organizer-and-spring-trainer-extraordinairre-sergi-almar\"><strong>&gt;&gt; A Bootiful Podcast: Spring I\/O organizer and Spring trainer extraordinaire Sergi Almar<\/strong><\/a> [<span style=\"color: #800000\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/www.infoq.com\/presentations\/spring-data-jpa\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\">&gt;&gt; Spring Data JPA from 0-100 in 60 Minutes<\/a><\/strong> [<span style=\"color: #800000\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2020\/03\/04\/spring-tips-kotlin-and-spring-security\"><strong>&gt;&gt; Spring Tips: Kotlin and Spring Security<\/strong><\/a> [<span style=\"color: #800000\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/www.infoq.com\/presentations\/spring-tools-4-boot-theia\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\">&gt;&gt; Spring Tools 4: Bootiful Spring Tooling for Desktop and Cloud<\/a><\/strong> [<span style=\"color: #800000\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/spring-cloud-stream-kafka-microservices\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong>&gt;&gt; Streaming with Spring Cloud Stream and Apache Kafka<\/strong><\/a> [<span style=\"color: #800000\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/spring-pipeline-prometheus-grafana\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong>&gt;&gt; Real-Time Performance Analysis of Data-Processing Pipelines with Spring Cloud Data Flow, Micrometer<\/strong><\/a> [<span style=\"color: #800000\">infoq.com<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<p><strong>Time to upgrade:<\/strong><\/p>\n<ul>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2020\/03\/05\/spring-security-5-3-goes-ga\"><strong>&gt;&gt; Spring Security 5.3 goes GA<\/strong><\/a> [<span style=\"color: #800000\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2020\/03\/09\/spring-boot-for-apache-geode-pivotal-gemfire-1-1-6-release-1-2-5-release-available\"><strong>&gt;&gt; Spring Boot for Apache Geode &#038; Pivotal GemFire 1.1.6.RELEASE &#038; 1.2.5.RELEASE available!<\/strong><\/a> [<span style=\"color: #800000\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2020\/03\/09\/spring-session-for-apache-geode-pivotal-gemfire-2-1-9-release-2-2-3-release-and-2-3-0-rc1-available\"><strong>&gt;&gt; Spring Session for Apache Geode &#038; Pivotal GemFire 2.1.9.RELEASE, 2.2.3.RELEASE and 2.3.0.RC1 available!<\/strong><\/a> [<span style=\"color: #800000\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2020\/03\/05\/spring-cloud-hoxton-service-release-3-sr3-is-available\"><strong>&gt;&gt; Spring Cloud Hoxton Service Release 3 (SR3) is available.<\/strong><\/a> [<span style=\"color: #800000\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2020\/03\/04\/spring-session-dragonfruit-rc1-corn-sr2-and-bean-sr10-released\"><strong>&gt;&gt; Spring Session Dragonfruit-RC1, Corn-SR2, and Bean-SR10 Released<\/strong><\/a> [<span style=\"color: #800000\">spring.io<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h2 data-id=\"technical-1\"><strong>2. Technical<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"technical-1\"><\/div>\n<h4><a href=\"https:\/\/blog.jooq.org\/2020\/03\/03\/better-understand-sql-by-adding-optional-parentheses\/\"><strong>&gt;&gt; 5 Ways to Better Understand SQL by Adding Optional Parentheses<\/strong><\/a> [<span style=\"color: #800000\">blog.jooq.org<\/span>]<\/h4>\n<p>A look at using parentheses with row expressions joins, and other operations, to shed some light on SQL&#8217;s syntactic structure.<\/p>\n<p><strong>Also worth reading:<\/strong><\/p>\n<ul>\n<li>\n<h4><a href=\"https:\/\/netflixtechblog.com\/how-netflix-uses-druid-for-real-time-insights-to-ensure-a-high-quality-experience-19e1e8568d06\"><strong>&gt;&gt; How Netflix uses Druid for Real-time Insights to Ensure a High-Quality Experience<\/strong><\/a> [<span style=\"color: #800000\">netflixtechblog.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.scottlogic.com\/2020\/03\/03\/microbit-raytracer.html\"><strong>&gt;&gt; 3D Rendering on a Children&#8217;s Toy<\/strong><\/a> [<span style=\"color: #800000\">blog.scottlogic.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.codecentric.de\/en\/2020\/03\/performance-analysis-of-a-graphql-application-with-instana\/\"><strong>&gt;&gt; Performance Analysis of a GraphQL application with Instana<\/strong><\/a> [<span style=\"color: #800000\">blog.codecentric.de<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h2 data-id=\"musings-1\"><strong>3. Musings<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"musings-1\"><\/div>\n<h4><a href=\"https:\/\/blog.codecentric.de\/en\/2020\/03\/failure-the-fertilizer-of-continuous-learning\/\"><strong>&gt;&gt; Failure \u2013 the fertilizer of continuous learning<\/strong><\/a> [<span style=\"color: #800000\">blog.codecentric.de<\/span>]<\/h4>\n<p>And why <strong>learning how to embrace and learn from failure is crucial to success<\/strong> in the software industry.<\/p>\n<p><strong>Also worth reading:<\/strong><\/p>\n<ul>\n<li>\n<h4><a href=\"https:\/\/diegobasch.com\/why-learn-to-code-for-fun-and-not-profit\"><strong>&gt;&gt; Why Learn to Code for Fun and Not Profit<\/strong><\/a> [<span style=\"color: #800000\">diegobasch.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.codecentric.de\/en\/2020\/03\/mindset-i-am-the-user-part-1\/\"><strong>&gt;&gt; Mindset \u201cI am the User\u201d \u2013 part 1<\/strong><\/a> [<span style=\"color: #800000\">blog.codecentric.de<\/span>] and <a href=\"https:\/\/blog.codecentric.de\/en\/2020\/03\/mindset-i-am-the-user-part-2\/\"><strong>&gt;&gt; Mindset \u201cI am the User\u201d \u2013 part 2<\/strong><\/a> [<span style=\"color: #800000\">blog.codecentric.de<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.scottlogic.com\/2020\/02\/29\/agile-progress-and-quality-reporting.html\"><strong>&gt;&gt; Agile Progress and Quality Reporting<\/strong><\/a> [<span style=\"color: #800000\">blog.scottlogic.com<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h2 data-id=\"comics-1\"><strong>4. Comics<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"comics-1\"><\/div>\n<p>And my favorite Dilberts of the week:<\/p>\n<h4><a href=\"https:\/\/dilbert.com\/strip\/2020-03-04\"><strong>&gt;&gt; Facial Recognition<\/strong><\/a> [<span style=\"color: #800000\">dilbert.com<\/span>]<\/h4>\n<h4><a href=\"https:\/\/dilbert.com\/strip\/2020-03-08\"><strong>&gt;&gt; Elbonian Consultant<\/strong><\/a> [<span style=\"color: #800000\">dilbert.com<\/span>]<\/h4>\n<h4><a href=\"https:\/\/dilbert.com\/strip\/2020-03-10\"><strong>&gt;&gt; Ghosts Use Bitcoin<\/strong><\/a> [<span style=\"color: #800000\">dilbert.com<\/span>]<\/h4>\n<h2 data-id=\"pick-of-the-week-1\"><strong>5. Pick of the Week<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"pick-of-the-week-1\"><\/div>\n<h4><strong><a href=\"https:\/\/jamesclear.com\/focus\">&gt;&gt; Focus: The Ultimate Guide on How to Improve Focus and Concentration<\/a> <\/strong>[<span style=\"color: #993300\">jamesclear.com<\/span>]<\/h4>\n\n<p class=\"syndicated-attribution\"><figure class= \\\"wp-block-image alignnone \\\"><img src= \\\"http:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-content\/uploads\/2016\/05\/logo2-2.png\\\" alt=\\\"IT\u96fb\u8166\u88dc\u7fd2 java\u88dc\u7fd2 \u70ba\u5927\u5bb6\u914d\u5c0d\u96fb\u8166\u88dc\u7fd2,IT freelance, \u79c1\u4eba\u8001\u5e2b, PHP\u88dc\u7fd2,CSS\u88dc\u7fd2,XML,Java\u88dc\u7fd2,MySQL\u88dc\u7fd2,graphic design\u88dc\u7fd2,\u4e2d\u5c0f\u5b78ICT\u88dc\u7fd2,\u4e00\u5c0d\u4e00\u79c1\u4eba\u88dc\u7fd2\u548cFreelance\u81ea\u7531\u5de5\u4f5c\u914d\u5c0d\u3002\\\"\/><figcaption>\u7acb\u523b\u8a3b\u518a\u53ca\u5831\u540d\u96fb\u8166\u88dc\u7fd2\u8ab2\u7a0b\u5427!<\/figcaption><\/figure>\r\n<\/br>Find A Teacher Form:\r\n<\/br>https:\/\/docs.google.com\/forms\/d\/1vREBnX5n262umf4wU5U2pyTwvk9O-JrAgblA-wH9GFQ\/viewform?edit_requested=true#responses\r\n<\/br><\/br>Email:\r\n<\/br>public1989two@gmail.com<br><br><br><br><br><br><br>\r\n<a href=www.itsec.hk style=color:#FFFFFF;>www.itsec.hk<\/a><br>\r\n<a href=\\\"www.itsec.vip\\\" style=color:#FFFFFF;>www.itsec.vip<\/a><br>\r\n<a href=\\\"www.itseceu.uk\\\" style=color:#FFFFFF;>www.itseceu.uk<\/a><br><\/p>","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>A simple RSocket client built using Spring Shell and Spring Boot, and a deep dive into writing command-line tools in Java using GraalVM and the Picocli library.&nbsp;<a href=\"https:\/\/www.baeldung.com\/java-weekly-324\" title=\"Java Weekly, Issue 324\">&gt;&gt;&gt;<\/a><\/p>\n<\/div>","protected":false},"author":214,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"slim_seo":{"title":"Java Weekly, Issue 324 - ITTeacherITFreelance.hk","description":"A simple RSocket client built using Spring Shell and Spring Boot, and a deep dive into writing command-line tools in Java using GraalVM and the Picocli library."},"footnotes":""},"categories":[6],"tags":[],"_links":{"self":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/3389"}],"collection":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/214"}],"replies":[{"embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=3389"}],"version-history":[{"count":10,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/3389\/revisions"}],"predecessor-version":[{"id":34886,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/3389\/revisions\/34886"}],"wp:attachment":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=3389"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/categories?post=3389"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/tags?post=3389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}