หลังจากพึ่งพา Security module มานานและขัดใจกับ @With(Secure.class) ที่ method ทั้งหมดจะ access ได้ต้อง authen ก่อนแต่บาง method ไม่ต้องการอย่างนั้นเลยต้องสร้าง class แยก วันนี้ลองขุดๆ code security module ดูถึงรู้ว่าจริงๆ แล้ว @With มีหน้าที่อะไร และ @Before ทำอะไรได้ และ @Check จริงๆ แล้วมันทำงานยังไง @With ใช้สำหรับรวม method ของ Class เข้าด้วยกันทำให้ annotation ต่างๆ เช่น @Before @After… มองเห็นข้าม class ที่ถูกประกาศไว้ เช่น จาก code ด้านบนเมื่อเรียกมาที่หน้า B.show จะมีการเรียก setup และ tearDown ก่อนและหลังจากที่ [...]
Annotation กับ ORM
ผมรู้จัก annotation ได้ก็จากการเริ่มทำงานเมื่อสามเดือนที่แล้ว เพราะพี่โยน Module อันนึงให้ทำ พร้อมกับแนะนำ annotation ในภาษาจาวาให้รู้จัก หลังจากลองเล่นไปได้สองเดือนตอนนี้ถึงกับติดใจเลยแหละ ที่ผมติดใจแล้วอยากเอามาใช้คือส่วนที่เป็น ORM เพราะวิํธีการประกาศ Class ที่จะ Map เข้ากับ Table ใน Database แบบเก่ามาอีกไฟล์นึงมันดูยุ่งยากยังไงไม่รู็ เพราะเหมือนกับต้องเขียนโครงสร้าง Table ถึงสองรอบ คือ ที่คลาสรอบนึง กับไฟล์ Map อีกรอบนึง ถ้าประกาศ Annotation ไว้ที่หัวของ คลาสเลย แล้วให้พวก ORM มาดูที่คลาสน่าจะสะดวกกว่าเยอะนะ ที่ผมสะดุดจริงๆ แล้วอยากเอามาใช้ก็จาก Symfony framework นี่แหละ เพราะมันต้องเขียน yaml มาอีกภาษา พอเห็นแล้ว โอ้มันอะไรกันเนี๊ยะ มันก็ Map เหมือน Hibernate นี่นา ถ้าจะทำไม่ทำให้เหมือนกันไปเลยฟะ เอ แล้วเมื่อไหร่ Hibernate [...]
Java : Default value for parameter
ช่วงนี้งานของผมมักทำอะไรเกี่ยวกับ Annotation และ Reflection ของ Java วันนี้ก็เจอกรณีนึงที่ต้องใช้สองอย่างนี้ นั่นคือ Default value ของ Parameter สำหรับ method ในจาวานั้น ไม่สามารถกำหนดค่า Default ให้ได้ เวลาจะทำอะไรแบบนี้ต้อง Overide เอา ซึ่งงานผมมันทำอะไรอย่างนั้นไม่ได้ (จริงถ้าจะทำให้ใช้แบบนั้น มันต้องมานั่งเขียน Flow ใหม่ ขี้เกียจอ่ะ) ก็เลยจะใช้วิธีนี้เอา ดังนั้น วิธีการที่แสนจะง่ายที่สุดที่ผมจะเอามาใช้ได้ก็คือ เอา Annotation มาช่วย โดยกำหนดไว้ว่า ถ้ามีการใส่ Annotation นี้ เวลาเอาคลาสนี้มาสร้าง แล้วใช้ผ่าน Proxy class ถ้าเรียกแล้วไม่กำหนดค่าให้ มันจะเอาค่า Default ที่ใส่ใน Annotation มาใส่ให้ หลังจากทำเสร็จ และใช้งานก็พบกับแสงสว่าง ที่มีเงาดำทะมึนด้านหลัง เพราะมันใช้ง่ายก็จริง แต่ว่า ไอ้ Proxy ที่จะทำนี่สิ [...]
Java annotation
ห่างหายไปนานกับจาวา มัวแต่ไปสนใจ Ubuntu ตัวใหม่กับ OpenID อยู่แหะๆ จริงๆตอนทำงานก็ได้ลองเล่นอะไรใหม่อยู่อย่างนึงที่เกี่ยวกับจาวา นั่นคือ Annotation Annotation คืออะไร มันก็คือสิ่งที่ไว้สำหรับอธิบายส่วนต่างๆใน code ของโปรแกรม แต่ไม่เหมือนกับ comment ที่อธิบายส่วนต่างๆ ของ code สำหรับคน เพราะ Annotation ไว้สำหรับโปรแกรมมาอ่านแล้วเอาไปใช้ต่อว่าส่วนนั้นหมายถึงอะไรเอาไปทำอะไร สำหรับรายละเอียดที่เหลือลองไปอ่านต่อในวิกิดูละกัน (โฆษณาวิกิตัวเองทางอ้อม 555 ) ปอลอ. ตอนแรกที่ใช้นี่ก็งงแต๊กว่ามันทำไรได้บ้างหว่า แต่ตอนนี้ติดใจมันซะแล้วสิ เพราะดูๆไปแล้ว นึกถึง JSON ยังไงไม่รู้