JJUG CCC 2024 Fall 2024-10-27 https://jjug.doorkeeper.jp/events/177443
JJUG CCC 2024 Fall 2024-10-27 https://jjug.doorkeeper.jp/events/177443
ç ä¿®ãã¯ãã¾ãã¨ããç»åã§ãµã¼ãã¬ããJSPã®æ¬ã並ãã§ã¦ããµã¼ãã¬ãããæåã«åå¼·ãããã®ãããã¦ããã¦ã»ããã¨æã£ã話ã ãªãã¸ã§ã¯ãæåããããªãã ãã©ãç¾ç¶ã§ä½¿ããªããªã£ã¦ããã«ããããããæ å ±æ´æ°ãããããªãã¸ã§ã¯ãæåããµã¼ãã¬ããJSPãæãããç¶ãæ¬ã売ãç¶ããããã¨ããç¾ç¶ãããã ã§ããããããã«å¤ãã£ã¦ã»ããã ãã ãJSPã¯ããã¾ã§æªããªãã®ã§ããµã¼ãã¬ããã§è©±ãé²ããã(ãã ãããµã¼ãã¬ãããåããªãç°å¢ã§ã¯JSPã¯åããªã) 使ããã¦ããªã ã¾ãããã¾ã®æ¡ä»¶ã®å¤ããSpring / Spring Bootã«ãªã£ã¦ã¦ããµã¼ãã¬ããããããã¨ãããã¨ã¯å°ãªãã 2020å¹´ã®JetBrainsã®èª¿æ»ã§ã¯ãããªæã https://blog.jetbrains.com/ja/idea/2020/10/a-picture-of-java-in-2020-ja/ 2021å¹´
paild 社ã§ãæä¼ãããã¦ãã yuki ã§ããã¿ãªãã㯠Rust ã§ DI ããããã¨æã£ãéã«å°ã£ããã¨ã¯ããã¾ãããï¼ãã®é£è¼ã§ã¯ãä»ã®ããã°ã©ãã³ã°è¨èªã§å©ç¨ããã DI ãã¿ã¼ã³ãåç §ããªãããRust ã§ãããå®è£ ããããã«ã¯ã©ã®ãããªå·¥å¤«ãå¿ è¦ãã¾ã§ãæ¤è¨ãã¾ããä¸ã«ã¯ Rust ã§ã®å®è£ ãé£ãããã¿ã¼ã³ãåºã¦ããããããã¾ããããã®éã¯ããªãé£ããã®ãã¾ã§ãæ¤è¨¼ãã¾ãã ããããã®è¦æ¨¡ã®ã½ããã¦ã§ã¢ãå®è£ ããã«ããã£ã¦ãã½ããã¦ã§ã¢ã¨ã³ã¸ãã¢ãå ±éãã¦å©ç¨ããææ³ãããã¤ãããã¨æãã¾ãããã®ä¸ã§ã DI (Dependency Injection; ä¾åãªãã¸ã§ã¯ãæ³¨å ¥) ã¯æãããã¥ã©ã¼ãªææ³ã®ä¸ã¤ã§ãããä¿å®éç¨ã¾ã§ãã¡ãã¨èãããã½ããã¦ã§ã¢ã®è¨è¨ããããã¨ãªã£ãã¨ãã«ãã¾ãçã£å ã«åè£ã«ä¸ããææ³ã§ãããã Rust ã§ã¯ãã® DI ãã©ã®ããã«è¡ãã°ããã®
2022å¹´3æ31æ¥ãSpring Frameworkã«è´å½çãªèå¼±æ§ã確èªãããä¿®æ£çãå ¬éããã¾ãããããã§ã¯é¢é£ããæ å ±ãã¾ã¨ãã¾ãã ï¼ï¼ä½ãèµ·ããã®ï¼ JDK9以ä¸ã§å®è¡ãããSpringMVCãSpringWebFluxã§ãªã¢ã¼ãã³ã¼ãå®è¡ãå¯è½ãªèå¼±æ§ï¼CVE-2022-22965ï¼ã確èªããããèå¼±æ§ã®éç§°ã«Spring4shellã¾ãã¯SpringShellãç¨ãããã¦ããã Spring Frameworkã¯Javaã§æ¡ç¨ããã主æµãªãã¬ã¼ã ã¯ã¼ã¯ã®1ã¤ã®ãããJavaã§å®è¡ãããWebã¢ããªã±ã¼ã·ã§ã³ã§å©ç¨ãã¦ããå¯è½æ§ãããã 2022å¹´3æ31æ¥æç¹ã§èå¼±æ§ã®Exploitã³ã¼ããåºåã£ã¦ãããé¢é£ããã¤ã³ã¿ã¼ãããä¸ã®æ´»åãæ¢ã«å ±åããã¦ããã ï¼ï¼èå¼±æ§ãæªç¨ãããã¨ä½ãèµ·ããã®ï¼ èå¼±æ§ãæªç¨ãããå ´åããªã¢ã¼ãããä»»æã³ã¼ãå®è¡ãè¡ããããã¨ã§ãæ©å¯æ å ±ã®
LTSã¨ãªãJava17ãåºã¾ãããçµç¹ãä»å¾ãJavaã使ã£ã¦ããããã®è©¦éç³ã«ãªããã¼ã¸ã§ã³ã ã¨æãã¾ãã å®éã®ã¨ãLTSã ããç¹å¥å®å®ãã¦ãã¨ããããªãã¨ã¯ãªãã¨æããã6ãã¼ã¸ã§ã³ï¼3å¹´ï¼ãã¨ã«LTSã«ããã£ã¦ã®ããã¶ãOracleãããè¨ã£ã¦ã¿ãã ãã§ãããããªã¨ããããã«ä¹ã£ãã£ã¦ããããå®è³ªçã«ç¯ç®ã«ãªã£ã¦ãã«éããªããã¯ãã ãã®ç¨åº¦ã®ãã®ãªãã ãã©ãç§ã®ãããªã®ã¯ä¹ã£ããã¾ããããã¶ã夿°æ´¾ãªããããªãããªãâ¦â¦ãã®æ´¾é¥ãéç¨ã§ä½¿ãJavaã®ãã¼ã¸ã§ã³ã¯8ã11ã17ã§ãä»ã®ãã¼ã¸ã§ã³ã¯è©ä¾¡ã«ä½¿ããããã§ãããã 11ãã17ã®ã¸ã£ã³ãã«ãªããã§ãããªãããããã®å¤æ´ãããã¾ãããæ¥åã¢ããªã±ã¼ã·ã§ã³ã®è¡¨å±¤ã«é¢ä¿ãããã®ã¯ããã¾ã§å¤ãããã¾ãããããã©ã¼ãã³ã¹ã¨ãã«å½±é¿ã®ãããã®ã¯å¤ã ããã¾ãããåºæ¬çã«ã¯æ©ããªãã¯ãã§ãåé¡ã«ãªããã¨ã¯ç¨ã§ããç¨ãªãã¨ã¯ãããããã§ã
ãSpring Nativeããã¼ã¿çå ¬éãGraalVMã«ããSpring Framworkã®Java/Kotlinã¢ããªããã¤ãã£ãã¤ã¡ã¼ã¸ã«ã³ã³ãã¤ã«ãJavaVMã«ä¾åããç¬æã«èµ·åå¯è½ Spring Frameworkã®éçºãã¼ã ã¨GraalVMã®éçºãã¼ã ã¯ãGraalVMãç¨ãã¦Spring Frameworkã®ã¢ããªã±ã¼ã·ã§ã³ããã¤ãã£ãã¤ã¡ã¼ã¸ã«ã³ã³ãã¤ã«ãããSpring Nativeãããã¼ã¿çã¨ãã¦å ¬éããããã¨ãçºè¡¨ãã¾ããã Announcing Spring Native Beta! Read the blog post https://t.co/5klXV6kSVB and check out the video for more details. #spring #native #graalvm https://t.co/83pI3vNYEr â Spri
ã©ãããè¶£å³ã§OpenJDKã®ã³ããã¿ããã£ã¦ã¾ããJVMã®å°éå®¶ã§ã¯ãªãã§ãã ä»åã¯JITã³ã³ãã¤ã«ã«ããææ°ãååã«è¡ããã¦ããå¦çãåããããããã«ããæ¹æ³ãç´¹ä»ãã¾ãã ä»åã®å®è£ 㯠Oracle ã®æåæ©è½ãã OpenJDK ã¸å¯è´ãã OpenJDK 11 ã«è¿½å ããã JDK Flight Recorderï¼JFRï¼ã¨ OpenJDK 14 ã«è¿½å ããã JFR Event Streaming ã使ç¨ãã¾ãã JITã³ã³ãã¤ã«ã¤ãã³ã OpenJDK ã§ã¯ãJITã³ã³ãã¤ã©ãã³ã³ãã¤ã«ããæ å ±ãå é¨çã«ã¤ãã³ãã¨ãã¦è¨é²ãã¦ãã¾ããä»åã¯ãã®ã¤ãã³ãã使ç¨ãã¦ããã¾ãããã®ã¤ãã³ãã®ãã¼ã¿å½¢å¼ã¯ä»¥ä¸ã«ãªãã¾ãã @Name("jdk.Compilation") @Category({"Java Virtual Machine", "Compiler"}) @Label("
Java IDEã«ããããããããã©ãããããã®ç¹æ§ã¨ãã¦IDEãã©ãã ãJavaãç¥ã£ã¦ãããã¨ãããã¨ã§æ±ºã¾ãã¨ãããã¨ãTwitterã«æ¸ããã®ã§ãã¡ãã£ã¨å ·ä½çã«æ¸ãã¦ã¿ã¾ãã IDEã®ä½¿ããããã«ã¤ãã¦ããã®IDEãã©ãã ãã¡ããã¨è¨èªãç¥ã£ã¦ãããä¾åãããã ãã©ãIntelliJ IDEAãä¸çªJavaè¨èªãç¥ã£ã¦ãã¦ãNetBeansã¯Javaã®ã¨ã³ã·ã¹ãã ãç¥ã£ã¦ãã¦ãEclipseã¯Javaãã¸ãã¹ãç¥ã£ã¦ããã»ã»ã» VS Codeã¯ã¾ã¨ããµã¤ãã§è¦ãã¬ãã«ã§Javaãç¥ã£ã¦ãæâ ããã ൠ(K8S(Kishidades)) (@kis) 2020å¹´10æ30æ¥ ã¡ãªã¿ã«ãå ¨ä½ã¨ãã¦NetBeansæ¨ãã§ãã 使ãåãã¨ãã¦ã¯ãããªãã¨æ¸ãã¦ã¾ãã Java IDEã®é¸ã³æ¹ æ©è½ããããã©ä½¿ããããã¦å®å®ããã®ãããâIntelliJ IDEA CE æ©è½å¤ãã®ãããã
ã©ãããè¶£å³ã§OpenJDKã®ã³ããã¿ããã¦ã¾ãã ã¨ããããã°ãèªãã§ãããæ°ã«ãªãç¹ããã£ãã®ã§æ¤è¨¼ãã¦ã¿ã¾ããã JITã¨ææ° Javaããã»ã¹ã¯ã¢ããªã±ã¼ã·ã§ã³ãåãããªããå¿ è¦ã«å¿ãã¦ããã¯ã°ã©ã¦ã³ãã§ãã¤ãã³ã¼ãããã¤ãã£ãã³ã¼ãã«ã³ã³ãã¤ã«ãã¾ãããã®ã³ã³ãã¤ã«æã«ã¯CPUãªã½ã¼ã¹ã使ç¨ãã¾ãã ã³ã³ãã¤ã«ã«ã¯ããã¤ãã®ã¬ãã«ãããã¾ãããã³ã³ãã¤ã«ãããåãã¬ãã«ã®ä½ãã³ã³ãã¤ã«ã®ã³ã¼ãã¯CPUã®ãªã½ã¼ã¹å¹çãæªãã£ãããã¢ããªã±ã¼ã·ã§ã³ã®å¦çä¸ã«ã³ã³ãã¤ã«ãå®è¡ãããã¨CPUãªã½ã¼ã¹ã奪ããã£ãããªã©ãåé¡ã«ãªãã¾ãã ãã®ãããJava ã®ã¢ããªã±ã¼ã·ã§ã³ã§æ§è½ãæ°ã«ããè¦ä»¶ãããå ´åãæ¬çªã«è¿ããªã¯ã¨ã¹ããæãã¦ã³ã¼ããJITã³ã³ãã¤ã«ããäºãããã¾ãããããããææ°ã¨è¨ãã¾ããããã«ããæ¬çªã®ãªã¯ã¨ã¹ããæ¥ãåã«ã³ã¼ããæé©åããããCPUãªã½ã¼ã¹å¹çã®é«ãã³ã¼ãã§
ã¯ããã« 2018 å¹´ 10 æã« Cloud Native Buildpacks 㯠Cloud Native Computing Foundation (CNCF)ã« Sandbox ã¨ãã¦åãå ¥ãããã¾ããã CNCF ã«ã¯ Kubernetes, Prometheus, Envoy, Fluentd ãªã©æåããã¸ã§ã¯ããå¤ãåãå ¥ãããã¦ãã¾ãã Buildpacks ã使ããã¨ã§ãDockerfile ãæ¸ããªãã¦ã Docker ã¤ã¡ã¼ã¸ã使ã§ãã¾ãã ã¾ãã使ãããã¤ã¡ã¼ã¸ã¯ããªã軽éã§ããã buildpacks.io 試ãã¦ã¿ã ä»åã¯ã以ä¸ã®ãªãã¸ããªã® Java ã¢ããªã±ã¼ã·ã§ã³ã® Docker ã¤ã¡ã¼ã¸ã使ãã¾ãã github.com ã¤ã³ã¹ãã¼ã« # Mac $ brew install buildpacks/tap/pack # Linux $ wge
Springã§Field InjectionããConstructor Injectionãæ¨å¥¨ãããçç±ã調ã¹ã¦ã¿ãã¡ã¢ã§ãã (2016/12/30) ãµã³ãã«ã³ã¼ãã«finalãã¤ããããã«ä¿®æ£ (2017/03/29) Immutabilityã«ã¤ãã¦è¿½è¨ --- å®¶ã§ãä¼ç¤¾ã§ãIntelliJã使ã£ã¦éçºãã¦ããã®ã§ããã Spring Bootã§@Autowired(@Inject)ã使ãã¨ä¸è¨ã®ãããªè¦åãåºãããã«ãªãã¾ããã è¦åå 容ãè¦ã¦ã¿ãã¨ããã£ã¼ã«ãã¤ã³ã¸ã§ã¯ã·ã§ã³ã¯æ¨å¥¨ããã¾ãããã¨ã®ãã¨ã ãField injection is not recommended.ã è¦åã®è©³ç´°ãè¦ã¦ã¿ãã¨ä¸è¨ã®ããã«æ¸ãã¦ããã¾ãã ãField injection is not recommended. Spring Team recommends: "Always use
Maven ã«ãã BOM ã®ä»çµã¿ã Gradle ã«ã¯ç¡ã Java ã®ä¸çãæä»£ã¯ Maven ãã Gradle ã«ç§»è¡ãã¤ã¤ãããããããã ããã¨è¨ã£ã¦å®æãªæ°æã¡ã§ Gradle ã鏿ããã¨çãç®ã«åããã¨ããããGradle ã Maven ã®ä¸ä½äºæã§ã¯ãªãããã ãä¾ãã°ãMaven ã«ãã BOM ã®ä»çµã¿ã Gradle ã«ã¯ç¡ãã Maven ã® BOM (bill of materials) ã¨ããä»çµã¿ã¯ããããã¯ãã®ä¸é£ã®ä¾åæ§ã®ãã¼ã¸ã§ã³ãå®ç¾©ããä¸è¦§è¡¨ã§ãããå©ç¨è ã¯ãã® BOM ã®ãã¼ã¸ã§ã³ãæå®ããããã°ãåã ã®ä¾åæ§ã®ãã¼ã¸ã§ã³ãæå®ããå¿ è¦ããªããªãã¨ãããã®ããã¨ãã° Java EE ã®ãã¹ãã£ã³ã°ãã¬ã¼ã ã¯ã¼ã¯ã§ãã Arquillian ã§ã¯ arquillian-bom ã¨ãã BOM ãæä¾ãã¦ããã以ä¸ã®ããã« arquillian-b
ä½åº¦ãæãã¦ããã ãã¦ããã®ã§ãä»åº¦ãããã£ããè¦ãã¦ããããã¦ãã¾ãããããã®ã³ã¡ã³ããè¨é²ã ## ã¡ã¢ãªãµã¤ãºã®èãæ¹ SpringBootã®ã¢ããªãã³ã³ããã¨ãã¦åããå ´åã«ã¯768MB以ä¸å¿ è¦ã§ã1GBãããã¯å²ãå½ã¦ãå¿ è¦ãããã®ã§ã¯ãªããã¨ããåã®ã³ã¡ã³ãã«å¯¾ãã¦ããã ããã³ã¡ã³ãã ããã¯ä¸æ£ç¢º..Tomcatã使ãå ´åã¯æå¤§ã³ãã¯ã·ã§ã³(ã¹ã¬ãã)ãããã©ã«ã200ã§+50ã¹ã¬ãããããä½è£ãè¦ãã¨250M (-Xss1Mï¼ã§ããã©ã«ãã®ReservervedCodeCacheSize 240Mã¨DirectMemorySize 10Må ããä¸ã«MaxMetaSpaceSizeããã£ãã50Mãããè¶³ãã¨550Mããã使ã£ã¦ããHeapãè¶³ãã¨ã³ã³ãããµã¤ãºâ Toshiaki Maki (@making) November 16, 2019 ãã®åæã§ããã°Heap 2
ãªã¯ã¨ã¹ãã®å ¥ãå£ã«ãªãã®ã¯Controllerã«ãªãããï¼åãã¦Springã触ãéçºè ã®æ¹ã馴æã¿ã«æ·±ãã¨æãã®ã§ããï¼ä½ãèããã«ã¢ããªãä½ã£ã¦ããã¨ï¼ã¤ãã¤ãControllerã«ãã¸ãã¹ãã¸ãã¯ãå®è£ ãã¦ãã¾ããã¡ã§ããããããã¨ï¼æè¬ä¿å®æ§ãå¯èªæ§ãä½ãFat Controllerãåºæ¥ä¸ãã£ã¦ãã¾ãã®ã§ï¼ãã¸ãã¹ãã¸ãã¯ã®éé¢ã¯å¼·ãæèããããã¤ã³ãã ã¨æãã¾ãã å人çã«ã¯ãããã以ä¸ã®å 容ã«å¾¹ããã®ãè¯ãã®ã§ã¯ï¼ã¨ããèãã§ãã Controller ãªã¯ã¨ã¹ãã®åä» ãªã¯ã¨ã¹ããã©ã¡ã¼ã¿ã®Validation Serviceã®å®è¡ ä¾å¤å¦ç ã¬ã¹ãã³ã¹ã®ä½æ Service ãã¸ãã¹ãã¸ãã¯ã®å®è¡ å¤é¨ãµã¼ãã¹ã¨ã®é£æº Repositoryãä»ãããã¼ã¿æä½ ãã©ã³ã¶ã¯ã·ã§ã³ç®¡ç Repository ãã¼ã¿æä½ Controllerã®ä¸ã§è¤æ°ç¨®é¡ã®Serviceãå¼ã³
ã©ããï¼ã¢ããªã±ã¼ã·ã§ã³åºç¤ãã¼ã ã®æ¨ªç°(@yokotaso)ã§ãï¼ kintoneãªã©ã§å©ç¨ãã¦ããJavaãã¬ã¼ã ã¯ã¼ã¯ã®Seasarã®EOLã«ä¼´ããS2Daoããã®è±å´ã試ã¿ãã®ã§ãããããã©ã¼ãã³ã¹åé¡ãé害ãçºçããã¦ãã¾ããªã©åé¡ãå¤ã çºçããã¦ãã¾ãã¾ããã åãéã¡ãç¹°ãè¿ããªãã¨ããå¼·ãæ±ºæã®ãã¨ãä»åã®å¤±æãããã°ã§å ¬éãããã¾ãã 失æãããã¦å ¬éããç¹ã§æ¬æ°ãã¤æ¿ãããã°è¨äºã¨ãªã£ã¦ããã¾ãï¼ å¤±æä½é¨ã®å ¬éã¯æ¥ã ãå½¹ã«ç«ã¤ï¼ ç§»è¡å ã®é¸å®ã®å¤±æ ç§»è¡å ã¨ãã¦é¸å®ãããããã¯ã㯠Hibernate*1ã§ãã Hibernateãé¸ãã çç±ã¨ãã¦ã¯ Spring Framework ãé¸å®ãã Spring Frameworkã§ Interface + ã¢ããã¼ã·ã§ã³ã§ããã°ã©ãã³ã°ãããªãSpring Data JPA ãæå JPAã«æºæ ããã®ORMã®ä¸ã§ããH
ã©ã³ãã³ã°
ã©ã³ãã³ã°
ã¡ã³ããã³ã¹
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}