{"id":113792,"date":"2019-03-20T01:38:30","date_gmt":"2019-03-19T17:38:30","guid":{"rendered":"https:\/\/www.baeldung.com\/?p=51153"},"modified":"2019-03-20T01:38:30","modified_gmt":"2019-03-19T17:38:30","slug":"java-weekly-issue-273","status":"publish","type":"post","link":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/2019\/03\/20\/java-weekly-issue-273\/","title":{"rendered":"Java Weekly, Issue 273"},"content":{"rendered":"<p><strong>Here we go\u2026<\/strong><\/p>\n<h2><strong>1. Spring and Java<\/strong><\/h2>\n<h4><strong><a href=\"https:\/\/www.baeldung.com\/datadog\">&gt;&gt; Use DataDog to monitor and troubleshoot your Java web applications <\/a><\/strong>\u00a0<\/h4>\n<p>Optimize performance with end-to-end tracing and out-of-the-box support for most Java frameworks, application servers, and, of course, databases. <strong><a href=\"https:\/\/www.baeldung.com\/datadog\">Try out the tool<\/a>.<\/strong><\/p>\n<h4><strong><a href=\"http:\/\/blog.codefx.org\/java\/java-12-guide\/\"  rel=\"noopener noreferrer\">&gt;&gt; Definitive Guide To Java 12<\/a><\/strong> [<span style=\"color: #993300;\">blog.codefx.org<\/span>]<\/h4>\n<p>The title says it all.<\/p>\n<h4><strong><a href=\"http:\/\/dolszewski.com\/spring\/spring-bean\/\"  rel=\"noopener noreferrer\">&gt;&gt; What is Spring bean?<\/a><\/strong>\u00a0[<span style=\"color: #993300;\">dolszewski.com<\/span>]<\/h4>\n<p>A nice introductory article explains these <strong>basic building blocks of any Spring application<\/strong>.<\/p>\n<h4><strong><a href=\"https:\/\/blog.frankel.ch\/options-manage-derived-attributes-kotlin\/\"  rel=\"noopener noreferrer\">&gt;&gt; Options for managing derived attributes in Kotlin<\/a> <\/strong>[<span style=\"color: #993300;\">blog.frankel.ch<\/span>]<\/h4>\n<p>A quick look at this feature covers the <strong>use cases and performance impacts of each option<\/strong>.<\/p>\n<h4><strong><a href=\"https:\/\/reflectoring.io\/spring-boot-configuration-properties\/\"  rel=\"noopener noreferrer\">&gt;&gt; Configuring a Spring Boot Module with @ConfigurationProperties<\/a><\/strong> [<span style=\"color: #993300;\">reflectoring.io<\/span>]<\/h4>\n<p>And a deep dive into the <em>@ConfigurationProperties<\/em> annotation and some <strong>best practices for its placement<\/strong> in your application code.<\/p>\n<h4><strong>Also worth reading:<\/strong><\/h4>\n<ul>\n<li>\n<h4><strong><a href=\"https:\/\/www.infoq.com\/news\/2019\/03\/java12-released?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=Java\"  rel=\"noopener noreferrer\">&gt;&gt; Java 12 Released with Experimental Switch Expressions and Shenandoah GC<\/a><\/strong> [<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/spring.io\/blog\/2019\/03\/14\/lazy-initialization-in-spring-boot-2-2\"  rel=\"noopener noreferrer\">&gt;&gt; Lazy Initialization in Spring Boot 2.2<\/a><\/strong>\u00a0[<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/blog.codeleak.pl\/2019\/03\/temporary-directories-in-junit-5-tests.html\"  rel=\"noopener noreferrer\">&gt;&gt; Temporary Directories in JUnit 5 Tests<\/a>\u00a0<\/strong>[<span style=\"color: #993300;\">blog.codeleak.pl<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/blog.jooq.org\/2019\/03\/14\/how-to-statically-override-the-default-settings-in-jooq\/\"  rel=\"noopener noreferrer\">&gt;&gt; How to Statically Override the Default Settings in jOOQ<\/a> <\/strong>[<span style=\"color: #993300;\">blog.jooq.org<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/billykorando.com\/2019\/03\/12\/why-you-should-start-injecting-mocks-as-method-arguments\/\">&gt;&gt; Why You Should Start Injecting Mocks as Method Arguments<\/a> <\/strong>[<span style=\"color: #993300;\">billykorando.com<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h4><strong>Webinars and presentations:<\/strong><\/h4>\n<ul>\n<li>\n<h4><strong><a href=\"https:\/\/spring.io\/blog\/2019\/03\/14\/spring-tips-be-lazy-and-fast-with-spring-boot-2-2-m1\"  rel=\"noopener noreferrer\">&gt;&gt; Spring Tips: Be Lazy AND Fast with Spring Boot 2.2.M1!<\/a><\/strong>\u00a0[<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/spring.io\/blog\/2019\/03\/15\/a-bootiful-podcast-spring-security-engineer-and-oauth-slayer-joe-grandja\"  rel=\"noopener noreferrer\">&gt;&gt; A Bootiful Podcast: Spring Security engineer and OAuth slayer Joe Grandja<\/a> <\/strong>[<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/www.infoq.com\/presentations\/websphere-pcf?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=Java\"  rel=\"noopener noreferrer\">&gt;&gt; WebSphere on Pivotal Cloud Foundry<\/a> <\/strong>[<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/www.infoq.com\/presentations\/redis-enterprise-spring?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=Java\"  rel=\"noopener noreferrer\">&gt;&gt; Fast and Furious: Searching in a Distributed World with Highly Available Spring Data Redis<\/a>\u00a0<\/strong>[<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/www.infoq.com\/presentations\/container-security-multi-tenant?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=Java\"  rel=\"noopener noreferrer\">&gt;&gt; Developer Secure Containers for the Cyberspace Battlefield<\/a> <\/strong>[<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/www.infoq.com\/presentations\/microservices-pcf-scalability?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=Java\"  rel=\"noopener noreferrer\">&gt;&gt; Achieving Hyper-Productivity through the Use of Microservices and PCF<\/a> <\/strong>[<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/www.infoq.com\/presentations\/liberty-mutual-hybrid-cloud?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=Java\"  rel=\"noopener noreferrer\">&gt;&gt; Security in the Hybrid Cloud at Liberty Mutual<\/a> <\/strong>[<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/blog.sebastian-daschner.com\/entries\/openliberty-monitoring-prometheus-grafana\"  rel=\"noopener noreferrer\">&gt;&gt; Monitoring Open Liberty with Prometheus &amp; Grafana<\/a> <\/strong>[<span style=\"color: #993300;\">blog.sebastian-daschner.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/www.infoq.com\/presentations\/credhub-security?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=Java\"  rel=\"noopener noreferrer\">&gt;&gt; CredHub and Secure Credential Management<\/a><\/strong>\u00a0[<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h4><strong>Time to upgrade:<\/strong><\/h4>\n<ul>\n<li>\n<h4><strong><a href=\"https:\/\/spring.io\/blog\/2019\/03\/18\/spring-cloud-data-flow-2-0-1-ga-released\"  rel=\"noopener noreferrer\">&gt;&gt; Spring Cloud Data Flow 2.0.1 GA Released<\/a> <\/strong>[<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/vladmihalcea.com\/hypersistence-optimizer-initial-release\/\"  rel=\"noopener noreferrer\">&gt;&gt; Hypersistence Optimizer initial release<\/a> <\/strong>[<span style=\"color: #993300;\">vladmihalcea.com<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h2><strong>2. Technical and Musings<\/strong><\/h2>\n<h4><strong><a href=\"https:\/\/advancedweb.hu\/2019\/03\/19\/spa_deployment\/\"  rel=\"noopener noreferrer\">&gt;&gt; Optimized SPA deployment CloudFormation template<\/a> <\/strong>[<span style=\"color: #993300;\">advancedweb.hu<\/span>]<\/h4>\n<p>A good write-up on <strong>using a CDN to speed up delivery<\/strong> of static and dynamic assets in your single-page app.<\/p>\n<h4><strong><a href=\"https:\/\/blog.codecentric.de\/en\/2019\/03\/bdd-alexa-skill-cucumber-js-part-1\/\"  rel=\"noopener noreferrer\">&gt;&gt; Behaviour-driven development (BDD) of an Alexa Skill with Cucumber.js \u2013 Part 1<\/a> <\/strong>[<span style=\"color: #993300;\">blog.codecentric.de<\/span>]<\/h4>\n<p>And a cool approach to acceptance testing for Alexa Skills locally by <strong>mocking the Voice Interaction Model<\/strong>. Very nice.<\/p>\n<h4><strong>Also worth reading:<\/strong><\/h4>\n<ul>\n<li>\n<h4><strong><a href=\"https:\/\/www.allthingsdistributed.com\/2019\/03\/Amazon-Aurora-design-cloud-native-relational-database.html\"  rel=\"noopener noreferrer\">&gt;&gt; Amazon Aurora ascendant: How we designed a cloud-native relational database<\/a> \u00a0 <\/strong>[<span style=\"color: #993300;\">allthingsdistributed.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/blog.codecentric.de\/en\/2019\/03\/machine-learning-experiments-production\/\"  rel=\"noopener noreferrer\">&gt;&gt; Machine Learning: Moving from Experiments to Production<\/a> <\/strong>[<span style=\"color: #993300;\">blog.codecentric.de<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/daedtech.com\/should-you-take-a-100-pair-programming-job\/\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Should You Take a 100% Pair Programming Job?<\/strong><\/a> [<span style=\"color: #993300;\">daedtech.com<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h2><strong>3. Comics<\/strong><\/h2>\n<h4>And my favorite Dilberts of the week:<\/h4>\n<h4><strong><a href=\"https:\/\/dilbert.com\/strip\/2019-03-21\"  rel=\"noopener noreferrer\">&gt;&gt; Extreme Marketing<\/a> <\/strong>[<span style=\"color: #993300;\">dilbert.com<\/span>]<\/h4>\n<h4><strong><a href=\"https:\/\/dilbert.com\/strip\/2019-03-18\"  rel=\"noopener noreferrer\">&gt;&gt; Boss Does Research on Internet<\/a> <\/strong>[<span style=\"color: #993300;\">dilbert.com<\/span>]<\/h4>\n<h4><strong><a href=\"https:\/\/dilbert.com\/strip\/2019-03-14\"  rel=\"noopener noreferrer\">&gt;&gt; Hiring Unethical Scientist<\/a> <\/strong>[<span style=\"color: #993300;\">dilbert.com<\/span>]<\/h4>\n<h2><strong>4. Pick of the Week<\/strong><\/h2>\n<h4><strong><a href=\"https:\/\/medium.com\/s\/story\/technical-debt-is-like-tetris-168f64d8b700\">&gt;&gt; Technical Debt Is Like Tetris<\/a> <\/strong>[<span style=\"color: #993300;\">medium.com<\/span>]<\/h4>\n<p><span style=\"font-weight: 400;\"><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A good week in the Java and Spring ecosystems, as Java 12 is released, and a nice write-up on Spring&#8217;s @ConfigurationProperties annotation.&nbsp;<a href=\"https:\/\/www.baeldung.com\/java-weekly-273\" title=\"Java Weekly, Issue 273\">&gt;&gt;&gt;<\/a> <a href=\"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/2019\/03\/20\/java-weekly-issue-273\/\">\u95b1\u8b80\u5168\u6587 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":142,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"slim_seo":[],"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[2,315,3665,2149,7],"tags":[398,402,397,414,413,410,409,407,408,11,406,399,400,394,318,375,558,560,555,561,553,554,562,524,10,401,396,381,403,412,411,395,405,404,457,454,316],"jetpack_publicize_connections":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p7prtj-tBm","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/113792"}],"collection":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/users\/142"}],"replies":[{"embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/comments?post=113792"}],"version-history":[{"count":1,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/113792\/revisions"}],"predecessor-version":[{"id":113793,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/113792\/revisions\/113793"}],"wp:attachment":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/media?parent=113792"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/categories?post=113792"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/tags?post=113792"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}