Home > tutorial series > เริ่มต้นกับ Spring Roo

เริ่มต้นกับ Spring Roo

June 17th, 2009

สำหรับคนที่ใช้ spring framework เคยรู้สึกเหนื่อยใจมั้ย ตอนที่จะขึ้น project ซักอันนึงต้อง config มากมายมหาศาลกว่า จะเริ่มลงมือเขียนโปรแกรมได้ โดยส่วนตัวผมวิธีที่ลัดขั้นตอนที่สุดก็คือ copy จากโปรเจ็คเดิมมาแล้วก็มาแก้ config ให้เข้ากับโปรเจ็คใหม่ แต่ก็นั่นแหละ ถ้าแก้ไม่ดีมันก็เหมือนวางยาตัวเองเข้าไปอีก แต่ตอนนี้เริ่มมีแสงสว่างปลายอุโมงค์ให้เห็นเพราะ spring source ได้ออก tool ตัวใหม่ชื่อ Roo มาให้เราๆท่านๆได้ใช้

แล้ว Roo คือ?

“Interactive, lightweight, user customizable tooling, that enables rapid delivery of high performance enterprise Java applications”

ทั้งหมดทั้งปวงนี้คือคำจำกัดความที่ Rod johnson พูดถึง Spring Rooในงาน springOne ซึ่งก็ถือได้ว่า เป็นการเปิดตัวอย่างเป็นทางการของ Roo หลังจาก ปล่อยให้ download มาลองใช้อยู่พักใหญ่

สิบปากว่าไม่เท่าลงมือมั่วดูผลลัพธ์ ลองกันเลยดีกว่าครับ

1.เริ่มจาก download spring-roo

2.ทำการติดตั้ง spring roo แตกzip ไปที่ path ที่เราต้องการ สิ่งจำเป็นสำหรับการติดตั้ง maven เวอร์ชั่นสูงกว่า 2.0.9 , java เวอร์ชั่นสูงกว่า 1.5

window ให้เพิ่ม \path\to\roo\bin เข้าไปที่ ENVIRONMENT PATH

linux ให้สร้าง link ตามคำสั่งนี้ครับ ln -s /path/to/roo/bin/roo.sh /usr/bin/roo
(ถ้ายังไม่ได้ติดตั้ง maven แนะนำไปที่นี่)

ทดสอบการติดตั้ง roo พิมพ์ที่ console $ roo ถ้าสำเร็จหน้าตาก็จะออกมาแบบนี้ (พิมพ์ quit หรือ exit ก็ได้ถ้าต้องการจะออกจาก roo shell)

ถ้าต้องการดูชุดคำสั่งที่ roo จัดเตรียมไว้ให้ก็พิมพ์ roo> help

หรือว่าใช้ tab ก็จะแสดงชุดคำสั่งออกมาเหมือนกัน roo> tab

3.สร้าง project

โดยเริ่มจากสร้าง directory ที่ชื่อว่า simple-roo ด้วยคำสั่ง $ mkdir simple-roo
หลังจากนั้นก็ทำการ change directory ไปที่ simple-roo พิมพ์ $ cd simple-roo
แล้วก็พิมพ์ roo เพื่อเข้าไปใน shell
เมื่อเข้ามาแล้วก็ทำการพิมพ์ create project แล้วลองเคาะ tab ซึ่ง -projectName ก็จะขึ้นมาอัตโนมัติ เพื่อให้ใส่ชื่อโปรเจ็คเข้าไปในที่นี้ตั้งว่า simple-roo สุดท้ายก็ทำการ ตั้งชื่อ top level project (ใช้เคาะ tab เอาเหมือนเดิม) ชื่อว่า com.spring66.roo

roo> create project -projectName simple-roo -topLevelPackage com.spring66.roo

4. ทำการติดตั้งตัว ORM กับเลือก database ที่จะใช้
roo> install jpa -provider HIBERNATE -database HYPERSONIC_PERSISTENT

roo> database properties (จะแสดง property ของ database)

ซึ่งถ้าหากต้องการจะเปลี่ยน property ก็สามารถแก้ไขโดยอ้างจาก -key เพื่อเปลี่ยนค่า -value

roo> database set -key database.url -value jdbc:hsqldb:${user.home}/springworkspace/simple-roo/

5.สร้าง entity

roo> new persistent class jpa -name ~.entity.Person
(ตัว “~” เป็นอักขระพิเศษที่แทนค่าtop-level package ของ โปรเจค) ผลลัพธ์ที่ได้ก็จะออกมาอย่างนี้

จะเห็นว่าตัว class หน้าตาจะออกมาบ้านๆมาก

@Entity
@RooEntity
@RooJavaBean
@RooToString
public class Person {
}

จากนั้นทำการเพิ่ม field เข้าไปใน entity

roo> add field string firstName -notNull -sizeMin 1 -sizeMax 30
roo> add field string lastName -notNull -sizeMax 50
roo> add field string email -sizeMax 30
ใน class Person ก็จะเป็นดังรูปข้างล่าง

@Entity
@RooEntity
@RooJavaBean
@RooToString
public class Person {

@NotNull
@Size(min = 1, max = 30)
private String firstName;

@NotNull
@Size(max = 50)
private String lastName;

@Size(max = 30)
private String email;
}

6.สร้าง test โดยใช้ JUnit integration tests
roo> new integration test
ผลลัพธ์ที่ได้ก็จะออกมาอย่างนี้

7.สร้าง controller
roo> new controller automatic ~.web.PersonController
ผลลัพธ์ที่ได้ก็จะออกมาอย่างนี้

8.สร้าง test ของ controller
roo> new selenium test -controller ~.web.PersonController

9.จบภาคspring roo เบื้องต้นทำการออกจากระบบ
roo> exit

ทดสอบระบบโดยใช้ maven
1.เริ่มจาก $ mvn test ถ้า test ผ่านก็ทำการ run โดยใช้ $ mvn tomcat:run
2.จากนั้นก็เปิด web browser แล้วก็พิมพ์ http://localhost:8080/simple-roo
3.สุดท้ายก็ test อีกครั้งโดยใช้ $ mvn selenium:selenese

reference
http://blog.springsource.com/2009/05/27/roo-part-2/
http://www.infoq.com/presentations/SpringOne-Keynote-Rod-Johnson

tutorial series

  1. June 17th, 2009 at 22:58 | #1

    แก้คำผิดด้วยครับ
    มหาสาร แก้เป็น มหาศาล
    dirctory แก้เป็น directory

    ตรงย่อหน้าตรงนี้ผมอ่านแล้วรู้สึกงงๆ ครับ น่าจะเพิ่มบรรทัดใหม่ เพื่ออธิบายทีละขั้นตอน จะทำให้เข้าใจง่ายขึ้นครับ

    …… โดยเริ่มจากสร้าง dirctory ที่ชื่อว่า simple-roo ด้วยคำสั่ง $mkdir simple-roo ……..

    ปล.
    1. น่าจะ capture ผลการทำงานมาให้ดูด้วยนะครับ ว่าเป็นอย่างไร
    2. file .aj คือ AspectJ
    3. ผมคิดว่า ROO มันเป็นทั้งเครื่องมือและอีกภาษานึงเลยครับ

  2. boyone
    June 18th, 2009 at 04:36 | #2

    @ http://somkiatspns.blogspot.com/
    แก้ให้แล้วครับ ขอบคูณมากพี่ ส่วนที่เหลือขอยกยอดเป็นอันถัดไปครับ ฮ่าๆๆ

  3. June 18th, 2009 at 09:16 | #3

    สวรรค์ รำไร สำหรับคนเขียน Java
    Java เร็ว

  4. June 18th, 2009 at 09:33 | #4

    spring roo มีจิงโจ้ด้วย อิอิ

  1. No trackbacks yet.
You must be logged in to post a comment.