SpringBootã§ã®ãµã¼ãã¼ã¢ããªã±ã¼ã·ã§ã³ã¯ããã³ã³ããéç¨ãå½ããåã§ãã³ã³ããéç¨ãå½ããåã£ã¦ãã¨ã¯ãã°ãçãã°ãã¡ã¤ã«ãè¦ãããããªãã©ããã«éãããããã®ãè¦ãã®ãå½ããåã§ãè¤æ°ã®ãµã¼ãã¼ã§éç¨ããããã°ãéç´ãã¦ã¿ãå ´åã¯ä½ããâ¦
æ°ãããªãã¨ããªã話ã§ããå½ããåã¨æã人ã«ã¯æããå½ããåï¼æ度åãã¯ãã¾ãï¼ãåç §ï¼ãã§ãç¥ããªããã¨ã¯æªã§ã¯ãªããããããªãã ã¼ã£ã¦ãªãã°ããã ãã®è©±ã ä¸é£ã®ãã°ã«åãå¤ãä»ä¸ãããæã MDC (SLF4J) ã ThreadContext (Log4j2) ã使ãâ¦
ããããªç¾å ´ã§ã¡ããã¡ãã話é¡ã«ãªãã®ã§ãåã«ãã¤ã¼ããããªããã¨è¦ã¦ã¿ãããã£ããé·ãã£ãã ã³ã¡ã³ãããã¨ã対å¿ããªããã°ãªããªããã£ã¦ãªãã®ãããã諸æªã®æ ¹æºã ã¨æã£ã¦ããâ irof (@irof) 2020å¹´9æ17æ¥ è«¸æªã®æ ¹æºï¼ ã¨ããããå ¨æ転è¨ãâ¦
ã¡ã½ããåã® getXXX 㨠findXXX ã©ã£ã¡ãããã®ï¼ã¿ãããªè©±ã«ãªããã¨ãããã ãã®æã®è©±ãã§ããã ãã§ãããæãã ã¨æãã¾ããååãè¨å·åãã¦ããªãã£ã¦ãã¨ãªã®ã§ã ä¸ã®ä¸ã«ã¯ååã«åãå²ãã®ãç¡é§ãªæèããã£ã¦ãããè¨ãã®ã«æããã¦ç¶ããã¨â¦
ããã°ã®ä¸æ¸ããçºãã¦ããæ¸ãããã§é£½ããã£ã½ãã®ãã¿ã¤ãã£ãã®ã§ä¾é¤ãã¦ããã¾ãã ããäºå¹´åã«ãªãã¾ããããã³ã¼ããã©ã¾ããªãã«ï¼è©²å½ã¹ã©ã¤ãï¼ãã§ãããªé¢¨ã«äººã¨ã³ã³ãã¥ã¼ã¿ã¨ã³ã¼ãã®é¢ä¿ã話ãã¾ãããï¼ãªããããã®ããã°æ¸ãã¦ãªããªâ¦â¦â¦
ããã°ã®ä¸æ¸ããçºãã¦ããé·æãã¿ã¤ãã£ãã®ã§ä¾é¤ãã¦ããã¾ãã TODOãDOããããã¯ãããã¾ãããå¿ã®ç®ã§è¦ã¦ãã ããã Javaã«ã¯ null ããã£ã¦ããã®åãããªãä¸çããããã§ããã©ãããªããªã£ããã¯ãã¦ãããªãã®ã§ãä»æ¹ãããã¾ãããããæâ¦
ããã°ã®ä¸æ¸ããçºãã¦ããé·æãã¿ã¤ãã£ãã®ã§ä¾é¤ãã¦ããã¾ãã ãã¾ãå ¬å¼ãµã¤ãããèªããããã£ã¦è¨ãç¶ãã¦ãããæ°å¹´è¶ãã§çµæçã«ãã®æ¹ãå¹çããã£ã¦æ°ã¥ãã¦ããã人ãããã®ã§ãè¨ãç¶ããã®ã大äºã ãªã¼ã¨æã£ããæè¿ãâ irof (@irof) 201â¦
ãã¨ã10æ¬ç®ã®ã¨ã³ããªã æ¯åãã®ããã°ã®1åä½ããè¨äºãã¨å¼ã¶ããã¨ã³ããªãã¨å¼ã¶ãã¨ãã§ç¡é§ã«æ©ãã ããã¾ãããæ¬è¨äºãã¨ããæ¬æ稿ãã¨ããããããæ¸ãã¦ããæç« å ã®ã¹ã³ã¼ããæãã®ã ã§æèçã«ã¯ãã¨ã³ããªãã使ã£ã¦ããã ãã©ãããã¯ã¯â¦
ãªãã ããã ã§è²ã ãããªãã¨ãé³è³ªã®éããªãã¦ãããè³ããã¦ããªãç§ãªã®ã§ããã¶ãè²»ç¨å¯¾å¹æãããªè¯ããªããã ãã©ãã¾ãã éã端æ«éã§æ¥ç¶åãæ¿ãé¢åãBluetoothã®ãã«ãæ¥ç¶ãã§ããªãã¯ãªããã ãã©ãããããã¨Slackéç¥é³ã¨ããå¥ã®ç«¯æ«ã§é³´â¦
è²·ã£ãã³ã³ãã³ããééãã¦æ¶ãã¡ãã£ã¦ããµãã¼ãã«åãåããããã©ããä¸é¨ãã復å ã§ãããåè³¼å ¥ãããããªããªãã¾ããããã®ä¸é¨å§çµãè¨é²ãã¦ããã¾ãã ç§ã®Kindleäºæ Macã®Kindleã¢ããªã¯ãKindle for Macãã¨ãã§ãé·ããåºæ¥ãã¤ãã¤ããªãã®â¦
SpringFramework 6.0.11 SpringBoot 3.1.2 2024-12-12: SpringBoot3.2ã®VirtualThread対å¿ã§å é¨ã®å®è£ ã¯ã¡ãã£ã¨å¤ãã£ã¦ã¾ããæ¬æä¸ã§åºã¦ããããã¤ãã®ã¯ã©ã¹ã¯3.2ã§Deprecatedã«ãªãã3.4ã§åé¤ããã¦ãã¾ããæ¡å¼µãããå®è£ ãèªãã ãããã¨ãã¯éãâ¦
ã¶ã£ã¡ããã³ã¼ãã¼ã®éæã¨ãè¦ãã¦ãªããã©ããªãã¨ãªã好ãã ãªã¼ãã¾ãã¡ã ãªã¼ã¨ãã¯ããã ãããã«ã¼ãã¦ã³ãã³ã ãã¯ãããæ°ããããããã¾å¥½ããããªãæ¹ã«å±ãããã©ã飲ã飲ã¾ãªãã§è¨ãã¨é£²ãæãã ãã®ç¨åº¦ã®å³è¦ã ãã©ãæ¯æ¥ä¸äººåã®ã³ã¼ãâ¦
ãã¤ã¼ã ããããããªãã«åå¿ããã£ãã®ã§ãå°ãä¸å¯§ã«æ¸ãã¦ãããããªã¨ã æ°´ç©ãªå 容ãªã®ã§ãèªåã§ã¤ãæ稿æ¥æ以å¤ã«ãã¿ã¤ãã«ã«ã2023å¹´6æããå ¥ãã¦å¼·èª¿ãã¦ããã¾ãã ããã¼ã¨ãããã¼ ããããããªããªãJava17ã«ãã¦ããã¾ãããã åæ ãã¤â¦
ï¼çµ¶æãã¦ãã¨ãã®ãã¤ã¼ãï¼ ä¸è¦ããã¯ç»é¢ã«è¡¨ç¤ºããããã ã®ãã¤ã¢ãã°ãªãã§ãããã©ã¡ãã®ãã¿ã³ãæ¼ãã¦ãéãã¦ããã¾ããã çµç·¯ ãã¤ãºãã£ã³ã»ãªã³ã°ãããã»ããã¯Boseã®QC35IIã使ã£ã¦ã¾ãã Bose QuietComfort 35 wireless headphones II ã¯â¦
ãã®ã¨ã³ããªã§ã®ãAPIãã¯HTTP APIã§ããJavadocãªã©ã§ããã¥ã¡ã³ãåã§ããAPIã§ã¯ãªãã§ãããã®ä»¶ã«é¢ãã¦ã¯ãã¤ãããã°ã¨ãæ¸ãããã ãã©ããã¾ã¯ ãã¤ã¼ããåç §ãã¦ãã ããã SpringBoot 3.1.0 springdoc-openapi 2.1.0 springdoc-openapi-gradle-â¦
SonarQube 9.9.1-community Maven 3.9.1 ããã¯ãªã« SonarQubeãããããã人åãã ãä½ã§ãããããªãã ããã¨ããç¾å ´ã§SonarQube使ã£ã¦ããã®ã®ãè¨å®ã¨ãå½±é¿ç¯å²ããããªãã¦æããã¨ããè²ã ã¨ããã¨æãããã¼ã«ã«ã§ãããããã¨ã¤ã¡ã¼ã¸ã湧ãããâ¦
Mac miniãå±ããã®ã§ã»ããã¢ããã®ã¡ã¢ ã 2020-11-15 ãªã®ã§ã P2Y2M22D ã¶ãã2ãªãã³ã ååã¯1é±éã§å±ãããã©ãä»åã¯3é±éå¼±ãçºè¡¨ç´å¾ã ãããM1åºãç´åã«Intellã®ãè²·ã£ã¦ã¸ãªã¸ãªãã¦ãã®ã ãã©ãã¡ã¢ãªã¨ã使ãã½ããï¼ä¸»ã«Dockerï¼ã®å¯¾å¿ã¨ãâ¦
å±ãã¦ã pic.twitter.com/StH3T8GYiWâ ãããµ (@irof) 2022å¹´11æ26æ¥ æ¹è¨3çãå®çªãªã®ããªï¼å°ãåã«Twitterã®TimeLineã«æµãã¦ããã®ãããã£ã¦å¿ãã¦ãã®ãå±ãã¾ããããã¯ãç©çæ¬ã¯è¯ãâ¦â¦ã ï¼»æ¹è¨3çï¼½å é¨æ§é ããå¦ã¶PostgreSQLâè¨è¨ã»éç¨è¨ç»â¦
https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement Spring Shell ãããããããªã®ã§Spring4Shellã£ã¦å¼ã³æ¹ã¯ãã¦ã»ãããªããªã¼ã¨ãã§ãCVEã®çªå·ãªãã¦è¦ãããªãã®ã§ãé称ã¯æ¬²ããããã®ååã§åºã¾ã£ã¡ãã£ãããæ¤ç´¢ã«ä½¿ã£â¦
Gradle 7.3.2 Gradleã使ã£ã¦ãããããã¯ãã ã¨ãåºæ¬çã«GradleWrapperã使ãã¨æãã¾ãã ããã¸ã§ã¯ãä½ææã«ææ°ã®Gradleã使ããã¨æãã¾ãããGradleã®æ´æ°ã§ãã¾ã«ãã«ãæéç縮ã¨ãããããã§ãæ°æ©è½ä½¿ããªãã¦ãWrapperãæ´æ°ãã¦ããããã¨ãâ¦
Log4j 2ã®ãã¼ã¸ã§ã³ã¢ããã®ãããã 㧠"ãMavenãªãã¸ããªãã®æããã®" ã軽ãæ¸ãã¾ããããããæ©ä¼ãªã®ã§ããå°ãæ¸ãã¦ããã¾ãã ææ°çã¯ä½¿ããï¼ https://twitter.com/irof/status/1469139048954724354 ãããããã¤ã¼ãããã¾ãã¦ã è¦ã¦ãé çªâ¦
Log4j 2ã®ãã¼ã¸ã§ã³ã¢ããã®ãããã ããã®æ´¾çã ç¹åããå 容ãªã®ã§å¥ã¨ã³ããªã«ãã¾ãã 2021-12-13追è¨: ä»æ°ã¥ãããã©Springå ¬å¼ããã°ã®[Log4J2 Vulnerability and Spring Boot](https://spring.io/blog/2021/12/10/log4j2-vulnerability-and-sprinâ¦
ãLog4j 2ã«èå¼±æ§ããããããããã¼ã¸ã§ã³ã¢ãããããæ²»ãããããã æ¬æ¥è©±é¡ã®ãã®ãã¼ãã§è»½ãæ¸ãã¦ããã¾ãã æªå®ã§ãã æªå®å ¬éã®è¨ã訳ãæ´æ°ããå 容ã¯æå¾ã«æ¸ãã¦ã¾ãã大ããªééãã¯ï¼ä»ã®ã¨ãï¼ãªãã®ã§ãããã£ãã 2021-12-20追è¨: 2.17â¦
irof.hateblo.jp ã®å¾ç¶ã¨ã³ããªã 5.1.0ã§ãµã¤ãºã¯æ»ã£ãã§ããï¼å°ãªãã¨ãç§ã使ãç¯å²ã¯ï¼ ä¾åããªã¼ã4.1.2ã®é ã¨ã ãããåãè¦ãç®ã å·¦ã5.1.0ã§å³ã5.0.0ï¼ã®å1/3ãããï¼ã§ãããããã¾ãã¾jarã®æ°ã«ãªãã 4.1.2 -> 5.1.0ã§è¦ãã¨ã»ã¨ãã©å·®ã¯â¦
JUnit 5.8.1 Java 17.0.1 IntelliJ IDEA 2021.2.3 JUnit5ã§ã® @MethodSource ã®ãããã JUnit5ã«ã¯ãã©ã¡ã¿ã©ã¤ãºããã¹ãç¨ã® @ParameterizedTest ããããæ§ã ãªæ¹æ³ã§ãã©ã¡ã¼ã¿ã¼ãä¸ãããã¾ãã ãã®ä¸ã§ããã©ã¡ã¼ã¿ã¼ã«ããç¨åº¦æè»æ§ã欲ããå ´åâ¦
å ¬å¼ããã¥ã¡ã³ãã ããã¨è¨ã£ã¦ãèããªãã«ãã®ã³ã¼ããåãè²¼ããã¦ã¯ãããªããã§ãã ã£ã¦ããç§ã®å¤±æè«ãé²æªè¶£å³ã¯ããã¾ããã Javaã®å ¬å¼ããã¥ã¡ã³ãã¨ãã¦JSLã®APIä»æ§ï¼Javadocã¨å¼ã°ãããããï¼ãããã¾ãã ã³ã¼ãä¾ãè¼ã£ã¦ãã¨ãæåç解â¦
ã·ã¹ãã éçºã®åéã¯æè¡ã®ç§»ãå¤ãããæ©ãï¼ãããä»ã®åéã¨æ¯ã¹ããã¨ãªãã®ã§ãæ©ãæ°ããããã¨è¨ãã ããªã®ã ãã©ï¼ããªãããã®æåãåããä¼æ¥ãªã©ã®æ¡ç¨ãã¦ãããã®ãããºã¯ã¼ãã¨ãªã£ã¦ä¸æ°ã«åºã¾ã£ãããã¾ãããã®æããã®æè¡ã ãã追ã£ã¦â¦
ã·ã¹ãã éçºã§ã¯ããã³ã¼ããåºåããã©ã°ã¨å¼ã°ãããã®ãæ±ãã¾ãã ããããæ··åãã¦ããããææ§ã«ãªã£ã¦ããããããã¨ã¯å¤ãã®ã§ããã®è¾ºããæ´çãã¦ããã¾ãã IDãååãªããããã®æèã«ç»å ´ããã®ã§ãã¤ãã§ã«ã ã³ã¼ã ã³ã¼ãã¯ã¨ã³ã³ã¼ãï¼ãâ¦
irof.hateblo.jp ãã¡ãã§æ¸ãããLocal record classesãã使ãæã®æ³¨æã 触ã£ã¦ãã¨æ¡å¤ä½¿ãæ©ä¼ãåºã¦ããããªæ触ããã£ãã®ã§ãæ°ãã¤ããã¨ãããæ¸ãã¦ããã¾ãã ãã¼ã«ã«ã¯ã©ã¹ ãããããã¼ã«ã«ã¯ã©ã¹ã£ã¦ãã¾ã使ããªããã®ãªãã§åå¨ãèªèããâ¦
record Outer(int a) { record Nest(int b) { } } ãããªãã¨ãããã©ããªããã ããã¨æ°ã«ãªãã¾ãã¦ã record ãåã«ã¯ã©ã¹ã®ã·ã³ã¿ãã¯ã¹ã·ã¥ã¬ã¼ã§ããã°ãNestã¯ã¤ã³ãã¼ã¯ã©ã¹ã«ãªãã®ã§Outerã®ã¤ã³ã¹ã¿ã³ã¹å¤æ°ãããã§ã¯ a ã«ã¢ã¯ã»ã¹ã§ãããã§ããâ¦