Category Spring / Spring Boot

สำหรับ Category นี้ เป็นการรื้อฟื้นงานด้าน Web เลยหลังากร้างรามาเกือบ 2 ปีครับ เขียนไปเรื่อยๆ จนพร้อม

[JAVA] Thread Pool ใน Java

ช่วงนี้งานเยอะครับ ผมได้รับมอบหมายงานให้ลองปรับระบบงานเดิม ให้มันรองรับงานได้มากขึ้น และหนึ่งในเทคนิคที่ผมเลือกใช้ การทำงานแบบ Asynchronous ครับ โดยการทำงานแบบนี้สิ่งคนสั่ง สั่งงานเสร็จปุ๊บ ไม่ต้องรอผลลัพธ์ครับ แล้วให้ระบบมันทำงานต่อไปจนเสร็จ และแจ้งค่อยแจ้งผลลัพธ์ให้ Client รับทราบครับ แล้ว ThreadPool มันเกี่ยวยังไงหละ เจ้า ThreadPool มันเป็นวิธีการนึงที่ช่วยในการจัดการกับ Resource ครับ ถ้าเป็นเมื่อก่อนเวลาเราจะแตกงานให้ใช้ CPU ของเครื่องให้มันคุ้มค่าสิ่งที่ทำกัน คือ การ New Thread แยกเลยครับ ตาม Code ตัวอย่างครับ ปล. Code นี้มีปัญหานะครับ Run ไปเรื่อยๆ จาก Code…

[SPRING] สร้าง Form Upload ไฟล์ และบันทึกข้อมูลครับ

หลังจากโดนมรสุมงานหนักมาตั้งแต่ต้นปีครับ กว่าจะได้กลับบ้านที่ก็ปาไป 3 ทุ่มกว่าๆ ถึง 4 ทุ่มและ เริ่มกลับมาทำ Thesis สักทีครับ สำหรับโจทย์ที่ผมเอามาเขียน Blog ครั้งนี้เป็นการ Upload File จากนั้น Save ที่ไฟล์ที่ Server ครับ พร้อมกับบันทึกข้อมูลที่ป้อนเข้ามาจาก User ครับ เตรียมตัว Tools พร้อม Code พร้อมครับ สำหรับผมใช้ Code ที่ตั้งโครงจาก Blog ก่อนๆมาพัฒนาต่อครับ Just Coding ครับ กำหนด Dependency ที่เกี่ยวข้องกันก่อนในไฟล์ pom.xml ครับ <dependency>…

[SPRING] ตรวจสอบข้อมูลก่อน Save ด้วย hibernate validator ครับ

หลังจาก Blog ตอนที่แล้วผมได้ลองทำ CRUD โดยใช้ Spring Boot ในเรื่องการการจัดการข้อมูล Person ไปแล้วนะครับ แต่ Blog ตอนล่าสุดของผมยังทิ้งท้ายอยู่นะครับ ว่ามันควรจะมีเรื่องของการ Validate ข้อมูลครับ คราวนี้ ผมเขียนตัว Validate ให้มันสมบูรณ์ครับ ซึ่ง Package ที่ผมใช้ hibernate validator ซึ่งเข้าตัวนี้มันเข้ามากับตอนที่เราใส่ Dependency Spring JPA แล้วครับ มาทำเลยดีกว่า สิ่งที่ต้องมี สร้างเว็บของตัวเองที่มี CRUD กันก่อนครับ หรือ ของผมใช้จาก Blog ตอนที่แล้วครับ มาลุยกันเลยครับ ชั้น…

[SPRING] มาใช้จัด Layout ให้กับ UI (Thymeleaf) ครับ

จาก Blog ตอนที่ที่ได้สร้างเว็บที่มี CRUD ต่อกับฐานข้อมูลแล้ว แต่ยังพบปัญหาว่ามันยังมี Code ที่ซ้ำซ้อนในส่วนของ UI เช่น ไฟล์ index.html ครับ และไฟล์ editPerson.html  เป็นต้น พระเอกที่จะมาช่วยเราในครั้งนี้ คือ thymeleaf-layout-dialect ถ้าใครเคยเรียน Design Pattern มาสิ่งที่ thymeleaf ทำ คือ View แต่ละอันทำหน้าที่ของตัวเองพอ แสดง Content ในส่วนที่รับผิดชอบ ส่วนการจัดการพวกเมนู และอื่นๆ จะถูกเพิ่มความสามารถ(Declorate) เข้าไปจากตัว Layout ครับ ตัว Design Pattern ที่ผมหมายถึง คือ Decorator pattern ครับ มาดูโจทย์กันก่อน เว็บจาก…

[SPRING] ลองต่อฐานข้อมูลกันหน่อย

จาก Blog ที่แล้วไปลองใช้ Thymeleaf ไปแล้วกับการแสดงผลให้สวยงานครับ แต่อันนั้นข้อมูลที่ได้เกิดจากการ Mock จากชั้น Service ครับ สำหรับ Blog ตอนนี้มีเป้าหมาย CRUD ได้ ต่อ Database ได้ โดยในที่นี้ผมใช้ MySQL ครับ สิ่งที่ต้องเตรียม ต่อ Database ต้องมีการเพิ่ม Dependency เพิ่มครับ JPA / Hibernate <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> MySQL – เรื่อง Version ยังไงต้องตรวจดูด้วยนะครับ <dependency>…

[SPRING] ทำความรู้จักกับ Thymeleaf

จาก Blog ตอนที่แล้วที่ได้ทดสอบ สวัสดีชาวโลก บน Spring Framework กันไปแล้วครับ แต่เว็บของเรามันไม่ได้มีหน้าตาอะไรเลย มีแต่ข้อความอย่างเดียวครับ วันนี้ผมจะมาเพิ่มหน้าจอในส่วนของ View นะครับ สิ่งที่ต้องเตรียม งานจาก Blog ตอนก่อนครับ ถ้าไม่มีสามารถเพิ่ม Dependency ลงในไฟล์ pom.xml ได้ครับ <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> หรือจะใช้ Spring Initializr ก็ได้ครับ รู้จักกับ Thymeleaf กันก่อนครับ เป็น Template Engine โดยหลักเราเขียน View ด้วย HTML แหละครับ แต่มี Tag…

[SPRING] สวัสดีชาวโลก

หลังจาก Blog ตอนที่แล้ว ผมได้เขียนเกี่ยวกับเขียน Spring โดยใช้ VSCode ครับ ซึ่งจาก Blog ตอนก่อน ยังติดปัญหาอยู่ที่ว่าเว็บทำงานแล้ว แต่ไม่มีการแสดงผลอะไรทั้งนั้นเลย ซึ่งใน Blog ตอนนี้ผมจะมาทำ Hello world ครับ สิ่งที่ต้องเตรียม งานที่ทำจาก Blog ตอนก่อนหน้าครับ ถ้าไม่ได้เริ่มมาจาก Blog ผม ก็สามารถเพิ่ม Dependency ไปที่ไฟล์ pom.xml  ดังนี้ <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> ลุยยเลยครับ มาดูโครงสร้างของ Project กันก่อนครับ src…

[SPRING] ใช้ VSCode ในการเขียน Spring Boot กัน

มาลองใช้งาน Spring Boot โดยใช้ VSCode กันครับ สำหรับ Blog นี้ เนื่องจากหลายๆงานในปัจจุบันหันมาใช้ VSCode กันติดแล้ว เพราะมันเร็ว ง่าย และไม่ซับซ้อนครับ โดยวันนี้ผมลองมาฟื้นฟูทักษะ Java ด้วย หายไปกับ .Net Framework กับ Power Shell หลายปีครับ สิ่งที่ต้องเตรียม ติดตั้ง JDK (Java Development Kit) SET JAVA_HOME ครับ ติดตั้ง VSCode ลุยกันเลย มาที่ VSCode เปิดมาแล้ว…

Inversion of Control (IoC)

Inversion of Control หรือ IoC มันเป็นจุดขายของตัว Spring Framework จนหลายๆเจ้าเอาไปปรับใช้เข้ากับ Product ของตัวเองครับ (Microsoft ASP.NET MVC ก็ใช้นะ) ก่อนจะไปใช้กัน เรามารู้กัดีกว่า เจ้าตัว Inversion of Control หรือ IoC มัน คือ อะไรครับ Inversion of Control หรือ IoC คือ อะไร มีประโยชน์อย่างไร มันมีมาเพิ่มลดความผูกแน่นติดกันของ Object ครับ ตาม Quote นี้เลย Do…

[Spring 4.x] Overview กันสักหน่อย

จาก Blog ในตอนที่แล้ว เราได้ใช้ Spring ไปแล้ว หลายคนอาจจะใช้แบบไม่รู้ตัวก็ได้ครับ ที่นี้เรามาดูภาพรวมของ Spring ดีกว่า ว่ามันมีอะไรบ้างครับ Spring ไม่ได้เกิดมาเพื่อทำเว็บอย่างเดียวนะครับ โดยที่เรารู้จักกันเยอะเป็น Spring MVC กลับมาที่ Spring ดีกว่าครับ Spring มันเป็น Framework  ที่เกิดจากความโหดร้ายของ EJB ใน J2EE ครับ อาทิ เช่น ไม่ต้องการ App Server ตัวใหญ่ๆ การ Implement ที่ต้องเขียน Code เยอะแยะ Code ผูกกับตัว…