บทความ

กำลังแสดงโพสต์ที่มีป้ายกำกับ Spring Framework

Webhook คืออะไร แนวทางการใช้งาน Webhook

ก่อนจะไปถึงเรื่อง Webhook ขอเท้าความไปถึงเรื่องของการเรียกใช้งาน API  แบบที่ไม่ต่อเนื่องนะครับ ยกตัวอย่างง่ายๆ เช่น Flow การจ่ายเงินที่ต้องไป Call API ของทาง Payment gateway แล้วต้องรอให้ลูกค้าทำการจ่ายเงินจนเสร็จ คำถามคือ เราจะรู้ได้อย่างไรว่าลูกค้าจ่ายแล้ว ? แบบเดิมๆ ง่ายๆ เลยไม่ต้องคิดมากก็เข้าไป Query Check เรื่อยๆ ถูกมั้ยครับ อาจจะ Query ด้วย Tx ID หรือ Order ID อะไรก็ว่าไป อยากได้ Realtime แค่ใหนก็อยู่ที่ว่าจะ Query ถี่แค่ใหน ซึ่งปัญหามันก็คือเราต้องวน Query ไปเรื่อยๆ จนกว่าจะได้คำตอบว่า Success แล้วซึ่งแน่นอน ถ้า เว้นช่วงในการ Query นาน ก็จะทำให้ความต่อเนื่องไม่ Real time แต่ถ้า Query  ถี่ๆ เกินไปก็เป็นการสิ้นเปลือง Traffic ทั้งที่เราเองและที่ปลายทางด้วย  Webhook เกิดมาเพื่อแก้ปัญหานี้ครับ คือมันจะดีกว่ามั้ยถ้าปลายทางทำงานเสร็จแล้วส่งมาบอกเราว่าเรียบร้อยแล้ว คำตอบคือมันดีงามแน่ๆ ครับ เพราะ Confirm ว่า Realtime แน่นอนเพราะ เสร็จปุ๊บ บอกได้ทันที แถมเราไม่ต้องเสียเวลาส่งไป Query ถามซ้ำๆ อีกด้วย   Webhook ทำงานยังไง แน่นอนครับการที่ต้นทางจะส่งกลับมาบอ...

Spring Framework กับการใช้งาน config file ด้วย PropertyPlaceholderConfigurer

บทความเกี่ยวกับ : Spring Framework กับการใช้งาน config file ด้วย PropertyPlaceholderConfigurer บางงานผมจำเป็นต้องมีการเก็บค่าบางอย่างลงใน Properties file เพื่อเป็น Configuration ไว้ใช้งานในระบบ วิธีการของผมคือ ผมจะวางไฟล์ นี้ไว้ใน Class Path หรือ หัอง SRC จากนั้นทำกาน Load file นี้ขึ้นมาใช้ได้ด้วย PropertyPlaceholderConfigurer  ตามตัวอย่าง     <!-- Spring properties file config -->     <bean name="propertyPlaceholder"         class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">         <property name="locations">             <list>                 <value>classpath*:db.properties</value>             </list>         </property> ...

Spring Framework กับ IOC และ AOP ที่เค้าว่ากันว่ามันคือแ่ก่นแท้นั้นเป็นอย่างไร

บทความเกี่ยวกับ : Spring Framework กับ IOC และ AOP ที่เค้าว่ากันว่ามันคือแ่ก่นแท้นั้นเป็นอย่างไร ถ้าพูดถึง Spring Framework แล้วหลายคนมันกจะเจอคำถามว่า เฮ๊ย ทำ Spring Framework มาอ่ะ รู้จัก IOC กับ AOP มั้ยวะ หุหุ จะว่าไปผมเองก็ไม่ได้รู้อะไรมาก แต่จะพยายามเล่าให้ฟังเท่าที่ผมเข้าใจ ละกันนะ IOC  ย่อมาจาก Inversion of Control หรือบางคนจะพูดถึงมันว่า dependency injection ถ้าจะให้อธิบายว่ามันคืออะไรผมก็คงจะพูดเหมือนในหนังสือหลายๆ เล่มบอกไว้น่ะแหละครับแต่ไม่รู้สิอ่านแล้วบางทีมันก็งงๆ ผมจะเล่าให้ฟังเป็น ภาษา Programmer ละกันนะครับจะได้สื่อสารกันง่ายหน่อย เอาง่ายๆ ยกเคสเช่น คุณต้องการ Connect Database  คุณไม่จำเป็นต้องไปเขียน Code ในการเปิด Connection เองเพียงแคุ่คุณบอกมาว่าต้องการใช้ตอนใหน เมื่อไหร่และอย่างไร เรา ( Container ) จะจัดถวายใส่พานไปให้คุณเอง คุณใช้เสร็จแล้วก็กองมันไว้ตรงนั้นแหละ เราจะทำการเก็บกวาดเช็ดถูให้คุณเองที่ยกตัวอย่างเรื่องการ Connect Database ก็เพราะอยากให้เห็นภาพ แต่จริงๆแล้วคือทุกอย่างตั้งแต่เล็กๆน้อยๆ เช่นการสร้าง Object หรือการใช้ Reso...

ตัวอย่าง Model พร้อมการใช้งาน Hibernate กับ Spring Framework

บทความเกี่ยวกับ : ตัวอย่าง Model พร้อมการใช้งาน Hibernate กับ Spring Framework เป็น Model ง่ายๆ นะครับที่ผมทำขึ้นมาเพื่อทดสอบการใช้งาน Hibernate เอาง่ายๆ ให้ดูแล้วเข้าใจก็พอ ไม่มีอะไร package com.en.model; import java.io.Serializable; import java.util.List; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.en.dto.MasterDto; import com.en.sap.MasterSAP; import com.en.ws.client.WebServiceClientMaster; public class MasterModel  extends HibernateDaoSupport implements Serializable{     private static final long serialVersionUID = 1L;     protected WebServiceClientMaster wsClient;     protected MasterSAP sap;     public void insertData(MasterDto dto){}     public void deleteData(MasterDto dto){}     public void updateData(MasterDto dto){}     public MasterDto getDataObj(Serializable pk){return null;}   ...

Spring Framework กับ Interceptor

บทความเกี่ยวกับ : Spring Framework กับ Interceptor ตัวอย่างการใช้งาน Interceptor ของ Spring Framework เอาไว้ดักการทำงานก่อนเข้า Controller ครับผมประมาณว่า ก่อนจะทำงานทุกครั้งจะต้องวิ่งเข้ามาที่ Interceptor ก่อนนั่นเอง Interceptor Class package com.en.interceptor; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import com.en.model.MasterModel; public class MasterInterceptor extends HandlerInterceptorAdapter{     private String errorURL;     private MasterModel model;         public String getErrorURL() {         return errorURL;     }     public void setErrorURL(String errorURL) {         this.errorURL = errorURL;     }     public MasterModel getModel() {         return model;     }     p...

Spring framework กับ Multi Action Controller

บทความเกี่ยวกับ : Spring framework กับ Multi Action Controller มาดูตัวอย่างการสร้าง Multi Action กับ Spring กัน นะครับ Controller Class package com.en.controller; import org.springframework.web.servlet.mvc.multiaction.MultiActionController; import com.en.model.MasterModel; public class MasterController extends MultiActionController{     protected MasterModel model;     protected String defaultScreen;     public MasterModel getModel() {         return model;     }     public void setModel(MasterModel model) {         this.model = model;     }     public String getDefaultScreen() {         return defaultScreen;     }     public void setDefaultScreen(String defaultScreen) {         this.defaultScreen = defaultScreen; ...

โครงสร้าง Project ของผม กับ Spring Framework

รูปภาพ
บทความเกี่ยวกับ : โครงสร้าง Project ของผม กับ Spring Framework นั่งจัดโครงสร้างอยู่นานสรุปออกมาได้คร่าวๆ ตามนี้แหละครับ แต่ละอย่างมีอะไรกันบ้างก็ตามรูปภาพเลยครับ Controller กับ Model นี่น่าจะคุ้นๆ กันดี ที่แปลกๆ มาก็คงจะมี Interceptor แต่จะว่าไปถ้าคนที่เล่น Spring Framework มาก็คงจะพอรู้จัก ทุกอย่างผมจะเชื่อมโยงกันผ่าน DTO หมดเลยครับลองดูๆ ว่ามันจะเป็นยังไง  

สร้าง Java Web Service ง่ายๆ ด้วย Apache CXF กับ Spring Framework

บทความเกี่ยวกับ : สร้าง Java Web Service ง่ายๆ ด้วย Apache CXF กับ Spring Framework แต่ก่อนถ้าพูดถึง Web Service แล้วคงมองว่าเป็นเรื่องไกลตัว และยุ่งยากในการ Implements แต่ตอนนี้หายห่วงเพราะ มี Tool ต่างๆ มาช่วยอำนวยความสะดวกมากขึ้น วันนี้ขอแนะนำ Apache CXF   ผมได้ทดลองนำเอามาใช้ร่วมกับ Spring Framework ด้วยขั้นตอนง่าย ตามนี้ครับ Service Interface package com.en.ws; import javax.jws.WebParam; import javax.jws.WebService; import com.en.dto.ExampleDto; @WebService public interface ExampleWSInf {     public ExampleDto getData(@WebParam(name="codeId")String codeId); } Service Class package com.en.ws; import java.io.Serializable; import com.en.dto.ExampleDto; import com.en.model.MasterModel; //@WebService(endpointInterface = "com.en.ws.ExampleWSInf", serviceName = "ExampleWS", portName="ExampleWS") public class ExampleWS  implements ExampleWSInf,Serializable {     private static final long serialVersionUID = 1L;   ...

BeanWrapper สุดยอด Library จาก Spring ที่ผมชอบมาก

บทความเกี่ยวกับ : BeanWrapper สุดยอด Library จาก Spring ที่ผมชอบมาก BeanWrapper สุดยอด Library จาก Spring ที่ผมชอบมาก รู้สึกว่าเอามาใช้แล้วช่วยให้การออกแบบ Application ทำได้ Dynamic มากขึ้น แบบนี้แหละที่ต้องการนัก ตัวอย่างการใช้งานง่ายๆ ตามนี้เลยคร้าบบบ package com.en.dto; import org.springframework.beans.BeanWrapper; import org.springframework.beans.BeanWrapperImpl; public class MasterDto {     BeanWrapper bw=new BeanWrapperImpl();     public Object getProperties(String pName){         bw.setWrappedInstance(this);         return bw.getPropertyValue(pName);     }     public void setProperties(String pName,Object value){         bw.setWrappedInstance(this);         bw.setPropertyValue(pName, value);     } }

SpringSource Tool Suite Plugin for Eclipse ไว้ Develop Spring โดยเฉพาะ

บทความเกี่ยวกับ : SpringSource Tool Suite Plugin for Eclipse ไว้ Develop Spring โดยเฉพาะ SpringSource Tool Suite Plugin for Eclipse ไว้ Develop Spring โดยเฉพาะ The Best Development Tool for Enterprise Java  คำคำนี้ได้มายังไง เดี๋ยวต้องลองดูกันซักหน่อยว่าจะได้ผลอย่างไรกันบ้าง ตอนนี้กำลังลอง Download อยู่ครับขนาดใหญ่พอดูทีเดียว 300 กว่า M เท่าที่อ่านๆ ดูแล้วน่าจะช่วยอำนายความสะดวกในการ Develop Spring Framework ระดับ Enterprise กันเลยทีเดียว .... เชียว Download ได้ที่นี่เลยคร้าบ

รู้จักกับ Spring Framework

บทความเกี่ยวกับ : รู้จักกับ Spring Framework Spring Framework เป็น J2EE Framework ที่ว่ากันว่าจิ๋วแต่แจ๋ว (ฉายานี้ คงได้มาเพราะ หลายๆ คนเอาไปเทียบกับ EJB)  ผมเองเป็นคนนึงที่ลองเล่น Framework มาหลายตัว แต่ก็มาโดนใจกับเจ้า Framework ตัวนี้ Spring Framework ถือว่ามีครบครัน ตั้งแต่ Font end , Business logic ,Db control ถึง แม้บางตัวอาจทำได้ไม่ดีนักแต่ก็รองรับการเชื่อมต่อ กับ Open Source ตัวอื่น ไม่ว่าจะเป็น MVC ต่างๆ เช่น Struts ,JSF , Velocity  หรือ ฟากฝั่ง Database Layer อย่าง Hibernate  ถือได้ว่าเป็น J2Ee Framework ที่ไม่ใช่เล่นเลยทีเดียว ใน Blog นี้จะมีเล่าถึง เรื่องราวของ เจ้า เฟรมเวอร์ค ใบไม้ผลิ นี้แน่นอน อย่าง มากมาย