Groovier Spring

January 7th, 2009 by cblue Leave a reply »

หลังปีใหม่ผมไม่มีไอเดียอะไรที่จะเขียนเกี่ยวกับ Spring เลย เพราะส่วนตัวไม่ได้ใช้โดยตรง ใช้ผ่านเกรลส์และ Groovy ตลอด

ข่าวที่ใกล้เคียงที่สุดก็เห็นจะเป็นการซื้อ G2One (Groovy และเกรลส์) ของ SpringSource เท่านั้น แต่พอเปิดปีใหม่มาเห็นใน feed เล่นเอาตกใจ เพราะมีบทความใน IBM developerWorks ทีเดียว 2 ตอนรวดจั่วหัวว่า Groovier Spring

ไม่มีสงสัย ผมเปิดดูทันที ทั้งสองบทความและซีรี่ย์ต่อกัน พูดเกี่ยวกับการใช้ Groovy (รวมทั้งบางอย่างของเกรลส์) เพื่อให้สามารถใช้ Spring ได้ง่ายขึ้น

สำหรับตอนแรกนั้นพูดเรื่องพื้นฐานการรวมระบบ และตอนที่สองพูดเรื่องการเปลี่ยนพฤติกรรมของระบบขณะรัน แล้วจะหาเวลามาขยายความต่อไปครับ

Advertisement

9 comments

  1. และแล้วเราก็กำลังจะรวมร่างกันเป็น g-spring66 ==’

  2. นึกว่า G-String ซะอีกครับ

  3. ผมใช้ Groovy script สำหรับออกรายงาน เหมือนบทความนี้เปียบเลย
    แต่ผมมีปัญหาคือ ถ้า Groovy script มีภาษาไทย ผมไม่สามารถระบุ encoding ของ file ได้
    ทำให้ต้องเอาภาษาไทยทั้งหมด ออกมาสร้างเป็น property แล้ว inject ให้ Groovy script อีกที

    ใน lang:groovy tag น่าจะมี attribute ให้ระบุ encoding ของ file นะครับ

  4. cblue says:

    @http://virasak.blogspot.com/
    ระบุได้นะครับ ผมใช้อยู่ใน tspec
    ดูในตัว runner ของ tspec เลยครับจะมีวิธีบอกให้มันใช้ encoding (ผมใช้ UTF-8)

  5. หมายถึง การ config ใน xml ของ Spring นะครับ

    ผมใช้แบบ lang:groovy แล้วระบุ script-source ไป ให้ Spring compile
    ให้ เพราะผมต้องการที่จะ reload เวลาแก้ layout รายงานได้ ไม่ได้ compile ไว้ก่อน
    แต่ไม่สามารถระบุ parameter ในการ compile จาก tag ที่ Spring
    มีให้

    หรือว่ามีช่องทางอื่นที่ Spring เตรียมไว้ให้ครับ

  6. @http://virasak.blogspot.com/
    ลอง config argument -Dfile.encoding ใน container หรือยังครับ, เท่าที่ดูคร่าวๆ เวลา spring load groovy script กรณีอ้างถึง groovy file, มันจะทำผ่าน ResourceScript ซึ่งภายในใช้ FileReader ในการอ่าน

    ส่วนกรณี inline-script ยังไม่เคยแกะ แต่ก็น่าจะเกี่ยวข้องกับวิธีการ parse xml file ของ spring

  7. @http://pphetra.blogspot.com/
    วิธีนี้น่าจะ work ครับ แต่ผมไปควบคุมตรงนั้นไม่ได้ จะดีกว่านี้ถ้า lang:groovy มี attribute encoding แล้วให้ ResourceScript เอาไปใช้กับ FileReader

    ส่วนเรื่อง inline-script ผมเข้าใจว่าไม่ต้องทำอะไร เพราะ xml ได้ระบุ encoding อยู่แล้ว
    เหมือนกับที่ผมแยกออกมาเป็น property ใน xml แล้ว inject เข้าใน Groovy script ผมก็ inline property เป็นไทย ใน xml เลย

    อันนี้ตัวอย่างที่ผมแยก

    <lang:groovy id="abc" script-source="abc.groovy">
    <lang:property name="message">
    <props>
    <prop key="reportName">ทดสอบ</prop>
    </props>
    </lang:property>
    </lang:groovy>

  8. หลังจากดู api แล้ว ResourceScriptSource ควรจะมี encoding property โดย default ให้ขึ้นกับระบบ
    เพราะเป็นตัวแรกที่ตีความจาก Resource เป็น String

  9. cblue says:

    @http://virasak.blogspot.com/
    อ๋อครับ ผมเข้าไปผิดไป

Leave a Reply

You must be logged in to post a comment.