{"id":3391,"date":"2020-03-02T04:32:48","date_gmt":"2020-03-02T04:32:48","guid":{"rendered":"https:\/\/www.baeldung.com\/?p=72750"},"modified":"2020-03-02T04:32:48","modified_gmt":"2020-03-02T04:32:48","slug":"java-weekly-issue-323","status":"publish","type":"post","link":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/2020\/03\/02\/java-weekly-issue-323\/","title":{"rendered":"Java Weekly, Issue 323"},"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-2\"><strong>1. Spring and Java<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"spring-and-java-2\"><\/div>\n<h4><a href=\"https:\/\/spring.io\/blog\/2020\/03\/02\/getting-started-with-rsocket-spring-boot-server\"><strong>&gt;&gt; Getting Started With RSocket: Spring Boot Server<\/strong><\/a> [<span style=\"color: #800000\">spring.io<\/span>]<\/h4>\n<p>A nice overview of RSocket, a <strong>reactive messaging protocol for microservices<\/strong> that works over TCP or WebSockets.<\/p>\n<h4><a href=\"https:\/\/blog.scottlogic.com\/2020\/02\/25\/spring-autowiring-its-a-kind-of-magic.html\"><strong>&gt;&gt; Spring Autowiring &#8211; It&#8217;s a kind of magic &#8211; Part 1<\/strong><\/a> [<span style=\"color: #800000\">blog.scottlogic.com<\/span>]<\/h4>\n<p>An under-the-hood look at Spring&#8217;s use of reflection to <strong>autowire dependencies into a bean class having a single constructor, without using\u00a0<em>@Autowire<\/em><\/strong>.<\/p>\n<h4><a href=\"https:\/\/www.infoq.com\/articles\/microservices-kotlin-ktor\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong>&gt;&gt; Tutorial: Writing Microservices in Kotlin with Ktor\u2014a Multiplatform Framework for Connected Systems<\/strong><\/a> [<span style=\"color: #800000\">infoq.com<\/span>]<\/h4>\n<p>And a quick look at Ktor, a <strong>Kotlin framework from JetBrains for building multi-platform client and server applications<\/strong>.<\/p>\n<h4><strong>Also worth reading:<\/strong><\/h4>\n<ul>\n<li>\n<h4><a href=\"https:\/\/www.javaspecialists.eu\/archive\/Issue276.html\"><strong>&gt;&gt; Serializing Records<\/strong><\/a> [<span style=\"color: #800000\">javaspecialists.eu<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/medium.com\/oracledevs\/all-in-and-new-groupids-oracle-jdbc-drivers-on-maven-central-a76d545954c6\"><strong>&gt;&gt; All in and New GroupIds \u2014 Oracle JDBC drivers on Maven Central<\/strong><\/a> [<span style=\"color: #800000\">medium.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/vladmihalcea.com\/hibernate-slow-query-log\/\"><strong>&gt;&gt; Hibernate slow query log<\/strong><\/a> [<span style=\"color: #800000\">vladmihalcea.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/4comprehension.com\/jdk8-on-spin-wait\/\"><strong>&gt;&gt; Backward-compatible Thread#onSpinWait with MethodHandles<\/strong><\/a> [<span style=\"color: #800000\">4comprehension.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.jooq.org\/2020\/02\/25\/use-the-jooq-refaster-module-for-automatic-migration-off-of-deprecated-jooq-api\/\"><strong>&gt;&gt; Use the jOOQ-Refaster Module for Automatic Migration off of Deprecated jOOQ API<\/strong><\/a> [<span style=\"color: #800000\">blog.jooq.org<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/news\/2020\/02\/OpenJDK-Verburg-Borges\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong><span class=\"t-bg-white l-pa2 l-d-i\">&gt;&gt; Q&#038;A with Martijn Verburg and Bruno Borges of Microsoft Regarding Contributing to the OpenJDK<\/span><\/strong><\/a><span class=\"t-bg-white l-pa2 l-d-i\"> [<span style=\"color: #800000\">infoq.com<\/span>]<\/span><\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2020\/02\/27\/cve-reports-published-for-reactor-netty\"><strong>&gt;&gt; CVE Reports Published for Reactor Netty<\/strong><\/a> [<span style=\"color: #800000\">spring.io<\/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\/02\/28\/a-bootiful-podcast-spring-cloud-contract-lead-marcin-grzejszczak-on-spring-cloud-contract-spring-cloud-sleuth-continuous-integration-and-more\"><strong>&gt;&gt; A Bootiful Podcast: Spring Cloud Contract lead Marcin Grzejszczak on Spring Cloud Contract, Spring Cloud Sleuth, Continuous Integration and more<\/strong><\/a> [<span style=\"color: #800000\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/spring-reactive-relational-database\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong>&gt;&gt; Reactive Relational Database Connectivity with Spring<\/strong><\/a> [<span style=\"color: #800000\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/spring-boot-di-devtools-autocompletion\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong>&gt;&gt; How to Get Productive with Spring Boot<\/strong><\/a> [<span style=\"color: #800000\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/spring-data-enhancements\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong>&gt;&gt; What\u2019s New in Spring Data?<\/strong><\/a> [<span style=\"color: #800000\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/high-resolution-telemetry\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong>&gt;&gt; High Resolution Performance Telemetry at Scale<\/strong><\/a> [<span style=\"color: #800000\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/cloud-foundry-kubernetes-project-eirini-kative\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong>&gt;&gt; Platforms Demystified: Cloud Foundry, Kubernetes, Eirini, and Knative<\/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\/02\/27\/spring-boot-2-2-5-released\"><strong>&gt;&gt; Spring Boot 2.2.5 released<\/strong><\/a> [<span style=\"color: #800000\">spring.io<\/span>] and <a href=\"https:\/\/spring.io\/blog\/2020\/02\/27\/spring-boot-2-1-13-released\"><strong>&gt;&gt; Spring Boot 2.1.13 released<\/strong><\/a> [<span style=\"color: #800000\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2020\/02\/26\/spring-data-moore-sr5-and-lovelace-sr16-released\"><strong>&gt;&gt; Spring Data Moore SR5 and Lovelace SR16 released<\/strong><\/a> [<span style=\"color: #800000\">spring.io<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h2 data-id=\"technical-2\"><strong>2. Technical<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"technical-2\"><\/div>\n<h4><a href=\"https:\/\/blog.frankel.ch\/versatility-kubernetes-initcontainer\/\"><strong>&gt;&gt; The Versatility of Kubernetes&#8217; initContainer<\/strong><\/a> [<span style=\"color: #800000\">blog.frankel.ch<\/span>]<\/h4>\n<p>An intro to initContainer, which allows us to <strong>customize the execution of immutable images at runtime<\/strong>.<\/p>\n<p><strong>Also worth reading:<\/strong><\/p>\n<ul>\n<li>\n<h4><a href=\"https:\/\/blog.jooq.org\/2020\/03\/02\/sql-distinct-is-not-a-function\/\"><strong>&gt;&gt; SQL DISTINCT is not a function<\/strong><\/a> [<span style=\"color: #800000\">blog.jooq.org<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.codecentric.de\/en\/2020\/02\/spy-vs-spy-aka-the-two-sides-of-the-testing-coin\/\"><strong>&gt;&gt; Spy vs. spy \u2013 aka \u201cThe two sides of the testing coin\u201d<\/strong><\/a> [<span style=\"color: #800000\">blog.codecentric.de<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/reflectoring.io\/interface-segregation-principle\/\"><strong>&gt;&gt; Everything You Need to Know About the Interface Segregation Principle<\/strong><\/a> [<span style=\"color: #800000\">reflectoring.io<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h2 data-id=\"musings-2\"><strong>3. Musings<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"musings-2\"><\/div>\n<h4><a href=\"https:\/\/www.satisfice.com\/blog\/archives\/487131\"><strong>&gt;&gt; Unclogging the Bug Pipeline<\/strong><\/a> [<span style=\"color: #800000\">satisfice.com<\/span>]<\/h4>\n<p>A good write-up about testing a system with the purpose of <strong>finding all the bugs that, if discovered, could matter to our customers<\/strong>.<\/p>\n<p><strong>Also worth reading:<\/strong><\/p>\n<ul>\n<li>\n<h4><a href=\"https:\/\/martinfowler.com\/articles\/value-architectural-attribute.html\"><strong>&gt;&gt; The Elephant in the Architecture<\/strong><\/a> [<span style=\"color: #800000\">martinfowler.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.scottlogic.com\/2020\/02\/28\/is-aeron-a-good-choice-for-a-messaging-solution.html\"><strong>&gt;&gt; Is Aeron a Good Choice for a Messaging Solution<\/strong><\/a> [<span style=\"color: #800000\">blog.scottlogic.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.codeleak.pl\/2020\/02\/testcontainers-with-quarkus-tests.html\"><strong>&gt;&gt; Quarkus tests with Testcontainers and PostgreSQL<\/strong><\/a> [<span style=\"color: #800000\">blog.codeleak.pl<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/daedtech.com\/a-modest-proposal-for-hourly-billing\/\"><strong>&gt;&gt; A Modest Proposal for Hourly Billing<\/strong><\/a> [<span style=\"color: #800000\">daedtech.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/news\/2020\/02\/equifax-charges\/?utm_campaign=infoq_content&#038;utm_source=infoq&#038;utm_medium=feed&#038;utm_term=Java\"><strong>&gt;&gt; Equifax Hackers Charged with Crime<\/strong><\/a> [<span style=\"color: #800000\">infoq.com<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h2 data-id=\"comics-2\"><strong>4. Comics<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"comics-2\"><\/div>\n<p>And my favorite Dilberts of the week:<\/p>\n<h4><a href=\"https:\/\/dilbert.com\/strip\/2020-02-28\"><strong>&gt;&gt; Purchasing Department<\/strong><\/a> [<span style=\"color: #800000\">dilbert.com<\/span>]<\/h4>\n<h4><a href=\"https:\/\/dilbert.com\/strip\/2020-02-25\"><strong>&gt;&gt; Pragmatist<\/strong><\/a> [<span style=\"color: #800000\">dilbert.com<\/span>]<\/h4>\n<h4><a href=\"https:\/\/dilbert.com\/strip\/2020-03-03\"><strong>&gt;&gt; Imposter Syndrome<\/strong><\/a> [<span style=\"color: #800000\">dilbert.com<\/span>]<\/h4>\n<h2 data-id=\"pick-of-the-week-2\"><strong>5. Pick of the Week<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"pick-of-the-week-2\"><\/div>\n<h4><strong><a href=\"https:\/\/doist.com\/blog\/remote-work-mental-health\/\">&gt;&gt; What Most Remote Companies Don\u2019t Tell You About Remote Work<\/a> <\/strong>[<span style=\"color: #993300\">doist.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>An intro to the RSocket messaging protocol for microservices, and a good write-up on the Kotlin-based Ktor framework for client and server development.&nbsp;<a href=\"https:\/\/www.baeldung.com\/java-weekly-323\" title=\"Java Weekly, Issue 323\">&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 323 - ITTeacherITFreelance.hk","description":"An intro to the RSocket messaging protocol for microservices, and a good write-up on the Kotlin-based Ktor framework for client and server development.&nbsp; &g"},"footnotes":""},"categories":[6],"tags":[],"_links":{"self":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/3391"}],"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=3391"}],"version-history":[{"count":9,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/3391\/revisions"}],"predecessor-version":[{"id":30409,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/3391\/revisions\/30409"}],"wp:attachment":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=3391"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/categories?post=3391"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/tags?post=3391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}