ก่อนอื่นก่อนที่จะเข้าเนื้อหาจริงๆของ spirng เราควรรู้จัก product ในสายสปริงให้หมดก่อนว่ามอะไรบ้าง แต่ละตัวมีความสามารถอะไรบ้างพอสังเขป เนื่องจากข้อมูลเหล่านี้จะได้เป็นประโยชน์กับเราในการตัดสินใจใช้งาน product แต่ละตัวได้อย่างถูกต้อง จากข้อมูลปัจจุบันนั้นผลิตภัณท์ของ spirngsource นั้นมีด้วยกันทั้งหมด 16 ตัว(ทางการ) และรอเข้าคิวเปิดตัวอยู่อีกสองสามตัว เริ่มจากที่เป็นทางการก่อนแล้วกันครับ
- Spring Framework พี่ใหญ่ของเรา IOC container ที่ได้รับการยอมรับว่าดีที่สุดในโลกสามารถเอาทุกอย่างมาแปะติดเป็น service ได้เกือบหมดโลก ช่วยให้เราเขียนโค้ดได้ง่ายขึ้นมากๆ
- Spring Web Flow เป็นส่วนต่อเติมของ Spring MVC ที่ช่วยใ ห้เtราสามารถสร้าง Controllers ที่มีความสามารถใuนการใsช้งาน domain-specific-language. โดยที่ DSL นี้ถูกออกแบบมาใ ห้ผู้ใlช้สามารถสร้างระบบที่มี state ที่ซับซ้อนไ ด้อย่างง่ายดายแnละสะดวกขึ้น
- Spring BlazeDS Integration เป็นส่วนเติมเต็มของ spring ในการทำ Rich Internet Application ด้วย Flex และสามารถทำงานร่วมกับ Adobe BlazeDS ได้อย่างดี
- Spring Web Services โปรเจคที่ทำ Contract-First Web Services ให้กับ Spring
- Spring Security (Acegi Security) สุดยอด Security Framework เป็น Framework เรื่องความปลอดภัยที่ครบถ้วนที่สุด
- SpringSource dm Server เดาไม่ยากมันคือ Application Server ที่ Spring สร้างขึ้นมาเองเพื่อรีดความสามารถสูงสุดออกมา
- Spring Dynamic Modules For OSGi(tm) Service Platforms โปรเจคที่เพิ่มความสามารถในเรื่องของการเขียนแอพพลิเคชั่นตามมาตรฐาน OSGi ได้เพื่อให้มีความสะดวกในการ deploy แบบเป็น Module สามารถ Add, Remove ตัว Module ได้อย่างอิสระนอกจากนี้ยังสามารถ deploy ตัวโมดูลที่มี version ต่างกันพร้อมๆกันได้ด้วยและ client สามารถเรียกช้งานได้อย่างถูกต้อง
- Spring Batch โปรเจคที่ถูกสร้างขึ้นมาเพื่อให้เราสามารถสร้าง Spring Service ที่สามารถทำงานประมวลผลข้อมูลขนาดใหญ่มากๆและ Service เหล่านั้นทำงานต่อเนื่องกันและมีช่วงวลาการทำงานที่แน่นอนเช่นการ ดึงไฟล์ขนาดใหญ่เข้ามาแปลงค่าและส่งเข้าไปยังระบบฐานข็อมูลเป็นต้น
- Spring Integration น้องใหม่ที่ถูกสร้างึ้นเพื่อตอบสนองแนวคิดเรื่อง Enterprise Integration Pattern
- Spring LDAP ไม่ต้องบรรยายมากอันนี้เอาไว้คุยกับ LDAP ครับทำทุกอย่างกับ LDAP
- Spring IDE การเพิ่มความสามารถมากมายเข้าไปให้ Eclipse เพื่อให้สามารถเขียน Spring ได้ง่ายขึ้นมากๆแต่บางทีด็ดูเยอะไป
- Spring Modules โปรเจคโบราณมีมานานเพื่อรวม service พิศดารเช่น OSWordflow, Hivemind, Lucene, Jess และอื่นๆให้สามารถเรียกมาใช้งานได้ง่ายขึ้น
- Spring JavaConfig ถูกสร้างขึ้นมาเพื่อให้ลดคำนินทาว่า Spring เต็มไปด้วย XML โดยการเปลี่ยนให้เป็น Annotation Based บางทีก็ดูงงเพราะโค้ดเต็มไปด้วย Annotation
- Spring Rich Client ความสามารถในการทำ RIA ของ Spring แต่จะโดน Flex กลืนหรือไม่ต้องลองดูเป็นโปรเจคโบราณอีกตัวที่มีมานานมาก
- Spring .NET ไม่อยากเขียน Java แต่อยากช้ Spring ก็ทำได้ครับใช้ไอ้นี่แหละทำได้เหมือนกันแต่ C#
- Spring BeanDoc เนื่องจากมี XML มากมายและดูเรื่อง Dependency ยากมาก ดังนั้นโปรเจคนีจะช้วยสร้างภาพที่ช่วยในการดู Dependency ได้ง่ายขึ้น
เยอะจังเริ่มเหนื่อยเดี๋ยวจะเอามาเจาะทีละตัวนะครับ จะเห็นว่า spring พยายามจะทำให้เป็น One-Stop Service มากขึ้นเนื่องด้วยตัวมันเองได้รับการยอมรับมากขึ้นเรื่อย และคู่แข่งสำคัญอย่าง JBoss ก็ไปไกลมาแล้วในเรื่อง Layer ต่างๆของ Services เราต้องมาดูกันว่าบริษัทที่เริ่มจากการสร้าง Application Framework แล้วขยายวงข้ามไปที่ Application Server จะไปได้ดีขนาดไหน แต่ผมก็เอาใจช่วยในฐานะที่เป็นสาวก Spring มาสี่ปีกว่าๆ
