จัด UI Layout กับ Thymeleaf

จัด Layout ด้วย Thymeleaf-layout-dialect ถ้าใครเคยเรียน Design Pattern มาสิ่งที่ thymeleaf ทำ คือ View แต่ละอันทำหน้าที่ของตัวเองพอ แสดง Content ในส่วนที่รับผิดชอบ ส่วนการจัดการพวกเมนู และอื่นๆ จะถูกเพิ่มความสามารถ(Declorate) เข้าไปจากตัว Layout ครับ ตัว Design Pattern ที่ผมหมายถึง คือ Decorator pattern ครับ มาดูโจทย์กันก่อน เว็บปกติจะมีจุดที่มันมี Code ซ้ำ จะ Reuse ยังไง ผมแยก 2 ส่วนนะครับ Header, Content และเพิ่ม Footer ตามรูปครับ สิ่งที่ต้องมี Spring Boot+Thymeleaf project ตรวจสอบ Dependency ให้ดีต้องมี thymeleaf <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> thymeleaf-layout-dialect […]

Thymeleaf – Spring Boot

หลายๆคนอาจจะรู้สึกว่าการพัฒนาเว็บโดยใช้ Java เนี่ยยุ่งยากนอกจากจะต้องรู้ภาษา Java แล้วยังต้องใช้ JSP(JavaServer Page) ในการพัฒนาหน้าเว็บอีกซึ่งมันก็มี Tag ที่วุ่นวาย ดังนั้นทีมพัฒนาก็เลยสร้าง Library ที่เรียกว่า “Thymeleaf” ขึ้นมา Thymeleaf คืออะไร? Thymeleaf ก็คือ “Template Engine” ตัวนึงที่ทำงานร่วมกับ Spring ได้ดี โดยการเพิ่ม Tag พิเศษของมันเข้าไปใน HTML tag ถ้าเราไม่ได้รันผ่านตัว Thymeleaf ก็จะเห็นเป็นหน้า HTML ธรรมดา เตรียมความพร้อม สิ่งที่ต้องการ Java 8 IDE ที่ถนัดสักตัว (เช่น Eclipse, Netbean, IntelliJ) เริ่มสร้าง Spring Boot Project สำหรับการสร้าง Spring Boot จะมีเครื่องมือที่ชื่อ “SPRING INITIALIZR” เป็นตัวอำนวยความสะดวกให้ […]

Lombok

Lombok เป็นหนึ่งในเครื่องมือสำคัญและเป็นที่นิยมของชาว Java ทั้งหลาย เพราะจะมาช่วยสร้าง boilerplate code ให้จะทำให้โค้ดเราดูสั้นอ่านง่ายมากขึ้น และทำให้เขียนโปรแกรมได้เร็วมากขึ้น Lombok จะสร้าง boilerplate code ตอนเวลา compile Install Lombok สามารถใช้ dependency management ทั้ง Maven และ Gradle ดังตัวอย่าง pom.xml ของ Maven ด้านล่าง @Getter/Setter การเขียนโปรแกรมแบบ OOP เราจะต้อง encapsulate field ของ class เอาไว้จำกัดการเข้าถึงจากภายนอก ดังนั้นจะต้องมี Getter/Setter เพื่อใช้ในการเข้าถึงหรือมีเงื่อนไขในการตั้งค่า จะทำให้โค้ดส่วนนี้มีมากแปรผันตรงกับจำนวนของ field แต่ Lombok มี annotation ที่มาช่วยให้เราสร้าง Getter/Setter ให้ด้วย @Getter และ @Setter จะเห็นได้ว่าจะลดโค้ดส่วนของ Getter/Setter […]

[Spring Boot] การเชื่อมต่อ database ด้วย Spring data JPA

JPA คืออะไร ก่อนอื่นก็ต้องมาพูดถึงไอ่เจ้าตัว JPA ก่อนเลยว่ามันคืออะไร มีไว้ทำอะไร JPA เป็นมาตรฐานหรือแนวทางในการทำ ORM (Object Relational Mapping) เช่น เคยเห็นพวก class java ของเราใช่มะ คือ JPA อ่ะ จะเป็นตัวบอกว่าเราจะต้องทำยังไงบ้างเพื่อที่จะเชื่อมต่อ java class ให้ไปเป็น table หรือ column ที่อยู่ใน database ของเรา โดยส่วนใหญ่ใน spring เนี่ย มันจะมีสิ่งที่เรียกว่า Hibernate ให้ใช้อยู่ และ Hibernate ได้ทำการ implement ตาม JPA ไว้เรียบร้อยแล้ว การดำเนินการเชื่อมต่อข้อมูลกับ database เพิ่ม JPA module ไว้ในโปรเจคของเราก่อน โดยการใส่โค้ดด้านล่างไว้ใน pom.xml ของโปรเจคภายใต้ tag <dependencies> 2. […]

[Spring Boot] การวางโครงสร้าง Project

โครงสร้างโปรเจ็คแบบ MVC+S โครงสร้างโปรเจคและการวาง package จะไม่ตายตัวขึ้นอยู่กับการใช้งานแต่ส่วนใหญ่ที่ใช้กันจะเป็นแบ่งหลักๆ ตาม concept ของ MVC+S ได้ดังภาพ package Controller เก็บ class Controller (@Controller) สำหรับส่วนที่ทำหน้าที่เป็นสมองส่วนกลาง ประสานข้อมูลระหว่าง Model Service และ View คือ รับ input มาจาก user แล้วก็ตัดสินใจ หรือ ประมวลผลว่า จะทำอะไรยังไงต่อ จากนั้นส่งค่า output กลับไปให้ user package Entity หรือ Model เก็บ class โครงสร้างข้อมูลตาม schema (@Entity) คือ ส่วนที่ทำหน้าที่เป็นรูปร่างลักษณะข้อมูลของเราว่าจะมีหน้าตาเป็นยังไงมีฟิลด์อะไรบ้าง package Repository เก็บ class Repository (@Repository) คือ ส่วนที่เชื่อมต่อ Database […]

1 2