{"id":202942,"date":"2021-02-26T10:40:31","date_gmt":"2021-02-26T10:40:31","guid":{"rendered":"https:\/\/www.baeldung.com\/?p=98023"},"modified":"2021-02-26T10:40:31","modified_gmt":"2021-02-26T10:40:31","slug":"java-weekly-issue-374","status":"publish","type":"post","link":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/2021\/02\/26\/java-weekly-issue-374\/","title":{"rendered":"Java Weekly, Issue 374"},"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\"><strong>1. Spring and Java<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"spring-and-java\"><\/div>\n<p><a href=\"https:\/\/blog.frankel.ch\/optional-stream\/\"  rel=\"noopener\"><strong>&gt;&gt; Optional.stream()<\/strong><\/a> [<span style=\"color: #800000;\">blog.frankel.ch<\/span>]<\/p>\n<p><strong>Streaming optional values<\/strong> \u2013 simplifying optional pipelines by converting them to streams!<\/p>\n<p><a href=\"https:\/\/rieckpil.de\/initialization-strategies-with-testcontainers-for-integration-tests\/\"  rel=\"noopener\"><strong>&gt;&gt; Initialization Strategies With Testcontainers For Integration Tests<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">rieckpil.de<\/span>]<\/p>\n<p><strong>Setting up containers with TestContainers\u00a0<\/strong>\u2013\u00a0executing commands, mounting files, init scripts, and prepopulating databases.<\/p>\n<p><a href=\"https:\/\/cl4es.github.io\/2021\/02\/23\/Faster-Charset-Decoding.html\"  rel=\"noopener\"><strong>&gt;&gt; Faster Charset Decoding<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">cl4es.github.io<\/span>]<\/p>\n<p>Better decoding for Java 17: <strong>optimizing ASCII-compatible charset decoders for a 10x performance boost!<\/strong><\/p>\n<h4><strong>Also worth reading:<\/strong><\/h4>\n<ul>\n<li><a href=\"http:\/\/www.odrotbohm.de\/2020\/03\/Implementing-DDD-Building-Blocks-in-Java\/\"  rel=\"noopener\"><strong>&gt;&gt; Implementing DDD Building Blocks in Java<\/strong><\/a> [<span style=\"color: #800000;\">odrotbohm.de<\/span>]<\/li>\n<li><a href=\"http:\/\/www.odrotbohm.de\/2021\/02\/Architecturally-evident-code-with-jMolecules\/\"  rel=\"noopener\"><strong>&gt;&gt; Architecturally evident code with jMolecules<\/strong><\/a> [<span style=\"color: #800000;\">odrotbohm.de<\/span>]<\/li>\n<li><a href=\"https:\/\/www.infoq.com\/news\/2021\/02\/netflix-graphql-spring-boot\/\"  rel=\"noopener\"><strong>&gt;&gt; Netflix Open Sources Their Domain Graph Service Framework: GraphQL for Spring Boot<\/strong><\/a> [<span style=\"color: #800000;\">infoq.com<\/span>]<\/li>\n<li><a href=\"https:\/\/arjan-tijms.omnifaces.org\/2021\/02\/jakarta-ee-survey-20202021-results.html\"  rel=\"noopener\"><strong><span class=\"t-bg-white l-pa2 l-d-i\">&gt;&gt; Jakarta EE Survey 2020\/2021 &#8211; results<\/span><\/strong><\/a><span class=\"t-bg-white l-pa2 l-d-i\"> [<span style=\"color: #800000;\">arjan-tijms.omnifaces.org<\/span>]<\/span><\/li>\n<\/ul>\n<p><strong>Webinars and presentations:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/spring.io\/blog\/2021\/02\/18\/a-bootiful-podcast-gitlab-s-reshmi-krishna-on-the-developer-lifecycle\"  rel=\"noopener\"><strong>&gt;&gt; A Bootiful Podcast: Gitlab&#8217;s Reshmi Krishna on the developer lifecycle<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/li>\n<li><a href=\"https:\/\/inside.java\/2021\/02\/22\/podcast-013\/\"  rel=\"noopener\"><strong>&gt;&gt; Episode 13 \u201cJDK Flight Recorder\u201d with Markus Gr\u00f6nlund<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">inside.java<\/span>]<\/li>\n<li><a href=\"https:\/\/adambien.blog\/roller\/abien\/entry\/micronaut_microprofile_micronaut_data_and\"  rel=\"noopener\"><strong>&gt;&gt; Micronaut, MicroProfile, Micronaut Data and Helidon<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">adambien.blog<\/span>]<\/li>\n<li><a href=\"https:\/\/www.infoq.com\/presentations\/developer-clojure\/\"  rel=\"noopener\"><strong>&gt;&gt; A Love Letter to Clojure<\/strong><\/a> [<span style=\"color: #800000;\">infoq.com<\/span>]<\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=2C9V3MTQvjU\"><strong>&gt;&gt; When Java Records Met Serialization: A Happy Tale<\/strong><\/a> [<span style=\"color: #993300;\">youtube.com<\/span>]<\/li>\n<\/ul>\n<p><strong>Time to upgrade:<\/strong><\/p>\n<ul>\n<li><strong><a href=\"https:\/\/spring.io\/blog\/2021\/02\/18\/spring-boot-2-3-9-is-now-available\">&gt;&gt; Spring Boot 2.3.9,<\/a> <a href=\"https:\/\/spring.io\/blog\/2021\/02\/18\/spring-boot-2-4-3-is-now-available\">2.4.3, and<\/a> <a href=\"https:\/\/spring.io\/blog\/2021\/02\/18\/spring-boot-2-5-0-m2-available-now\">2.5.0-M2 available now<\/a><\/strong> [<span style=\"color: #800000;\">spring.io<\/span>]<\/li>\n<li><a href=\"https:\/\/spring.io\/blog\/2021\/02\/18\/spring-security-5-4-5-released\"  rel=\"noopener\"><strong>&gt;&gt; Spring Security 5.4.5 released<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/li>\n<li><a href=\"https:\/\/in.relation.to\/2021\/02\/24\/hibernate-search-6-0-2-Final\/\"  rel=\"noopener\"><strong>&gt;&gt; Hibernate Search 6.0.2.Final released<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">in.relation.to<\/span>]<\/li>\n<li><a href=\"https:\/\/spring.io\/blog\/2021\/02\/19\/spring-initializr-0-10-0-available-now\"  rel=\"noopener\"><strong>&gt;&gt; Spring Initializr 0.10.0 available now<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/li>\n<li><a href=\"https:\/\/spring.io\/blog\/2021\/02\/19\/spring-hateoas-1-3-m2-released\"  rel=\"noopener\"><strong>&gt;&gt; Spring HATEOAS 1.3 M2 released<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/li>\n<li><a href=\"https:\/\/spring.io\/blog\/2021\/02\/18\/spring-data-2021-0-m4-2020-0-sr5-neumann-sr7-and-moore-sr13-released\"  rel=\"noopener\"><strong>&gt;&gt; Spring Data 2021.0 M4, 2020.0 SR5, Neumann SR7 and Moore SR13 released<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/li>\n<\/ul>\n<h2 data-id=\"technical\"><strong>2. Technical<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"technical\"><\/div>\n<p><a href=\"https:\/\/netflixtechblog.medium.com\/beyond-rest-1b76f7c20ef6\"  rel=\"noopener\"><strong>&gt;&gt; Beyond REST<\/strong><\/a> [<span style=\"color: #800000;\">netflixtechblog.medium.com<\/span>]<\/p>\n<p><strong>Rapid development for GraphQL microservices<\/strong> \u2013 documentation, graphile, database views as API, and many more!<\/p>\n<p><strong>Also worth reading:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/www.infoq.com\/news\/2021\/02\/dapr-production-ready\/\"  rel=\"noopener\"><strong>&gt;&gt; Distributed Application Runtime (Dapr) v1.0 Announced<\/strong><\/a> [<span style=\"color: #800000;\">infoq.com<\/span>]<\/li>\n<li><a href=\"https:\/\/www.mscharhag.com\/api-design\/rest-concurrent-updates\"  rel=\"noopener\"><strong>&gt;&gt; REST API Design: Dealing with concurrent updates<\/strong><\/a> [<span style=\"color: #800000;\">mscharhag.com<\/span>]<\/li>\n<li><a href=\"https:\/\/blog.codecentric.de\/en\/2021\/02\/github-actions-pipeline\/\"  rel=\"noopener\"><strong>&gt;&gt; GitHub Actions CI pipeline: GitHub Packages, Codecov, release to Maven Central &#038; GitHub<\/strong><\/a> [<span style=\"color: #800000;\">blog.codecentric.de<\/span>]<\/li>\n<li><a href=\"https:\/\/reflectoring.io\/meaningful-commit-messages\/\"  rel=\"noopener\"><strong>&gt;&gt; Writing Meaningful Commit Messages<\/strong><\/a> [<span style=\"color: #800000;\">reflectoring.io<\/span>]<\/li>\n<li><a href=\"https:\/\/vladmihalcea.com\/sql-server-openjson\/\"  rel=\"noopener\"><strong>&gt;&gt; SQL Server OPENJSON \u2013 Map JSON to a relational table<\/strong><\/a> [<span style=\"color: #800000;\">vladmihalcea.com<\/span>]<\/li>\n<li><a href=\"https:\/\/blog.thecodewhisperer.com\/permalink\/abstract-test-cases-20-years-later\"  rel=\"noopener\"><strong>&gt;&gt; Abstract Test Cases, 20 Years Later<\/strong><\/a> [<span style=\"color: #800000;\">blog.thecodewhisperer.com<\/span>]<\/li>\n<\/ul>\n<h2 data-id=\"musings\"><strong>3. Musings<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"musings\"><\/div>\n<p><a href=\"https:\/\/morethancoding.com\/2021\/02\/16\/moving-from-management-to-enablement\/\"  rel=\"noopener\"><strong>&gt;&gt; Moving from Management to Enablement<\/strong><\/a> [<span style=\"color: #800000;\">morethancoding.com<\/span>]<\/p>\n<p><strong>Becoming an effective enabler manager<\/strong> \u2013 clarifying the mission, autonomy delegation, responsibility audit, anti-patterns, and measurement.<\/p>\n<p><strong>Also worth reading:\u00a0<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/blog.scottlogic.com\/2021\/02\/17\/probably-dont-need-microfrontends.html\"  rel=\"noopener\"><strong>&gt;&gt; You probably don\u2019t need a micro-frontend<\/strong><\/a> [<span style=\"color: #800000;\">blog.scottlogic.com<\/span>]<\/li>\n<li><a href=\"https:\/\/www.mnot.net\/blog\/2021\/02\/18\/no-news\"  rel=\"noopener\"><strong>&gt;&gt; No news is&#8230; a sign of a stagnating Internet<\/strong><\/a> [<span style=\"color: #800000;\">mnot.net<\/span>]<\/li>\n<\/ul>\n<h2 data-id=\"comics\"><strong>4. Comics<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"comics\"><\/div>\n<p>And my favorite Dilberts of the week:<\/p>\n<p><a href=\"https:\/\/dilbert.com\/strip\/2021-02-25\"  rel=\"noopener\"><strong>&gt;&gt; Worst Place To Work<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">dilbert.com<\/span>]<\/p>\n<p><a href=\"https:\/\/dilbert.com\/strip\/2021-02-24\"  rel=\"noopener\"><strong>&gt;&gt; You Make Luck<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">dilbert.com<\/span>]<\/p>\n<p><a href=\"https:\/\/dilbert.com\/strip\/2021-02-23\"  rel=\"noopener\"><strong>&gt;&gt; Simulation Nonsense<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">dilbert.com<\/span>]<\/p>\n<h2 data-id=\"pick-of-the-week\"><strong>5. Pick of the Week<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"pick-of-the-week\"><\/div>\n<p><strong><a href=\"http:\/\/www.paulgraham.com\/makersschedule.html\">&gt;&gt;\u00a0 Maker&#8217;s Schedule, Manager&#8217;s Schedule<\/a> <\/strong>[<span style=\"color: #993300;\">paulgraham.com<\/span>]<\/p>\n<p>The post <a href=\"https:\/\/www.baeldung.com\/java-weekly-374\">Java Weekly, Issue 374<\/a> first appeared on <a href=\"https:\/\/www.baeldung.com\/\">Baeldung<\/a>.<\/p>\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>Streaming options, initializing testcontainers, faster charset decoding, DDD in Java, GraphQL microservices, and recipes for being an enabler manager!\u00a0<a href=\"https:\/\/www.baeldung.com\/java-weekly-374\" title=\"Java Weekly, Issue 374\" class=\"more\">&gt;&gt;&gt;<\/a><\/p>\n<p>The post <a href=\"https:\/\/www.baeldung.com\/java-weekly-374\">Java Weekly, Issue 374<\/a> first appeared on <a href=\"https:\/\/www.baeldung.com\/\">Baeldung<\/a>.<\/p>\n<\/div>","protected":false},"author":214,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"slim_seo":{"title":"Java Weekly, Issue 374 - ITTeacherITFreelance.hk","description":"Streaming options, initializing testcontainers, faster charset decoding, DDD in Java, GraphQL microservices, and recipes for being an enabler manager!\u00a0 &gt;&gt;"},"footnotes":""},"categories":[6],"tags":[],"_links":{"self":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/202942"}],"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=202942"}],"version-history":[{"count":3,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/202942\/revisions"}],"predecessor-version":[{"id":225017,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/202942\/revisions\/225017"}],"wp:attachment":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=202942"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/categories?post=202942"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/tags?post=202942"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}