Làm chủ Grails: Xây dựng ứng dụng đầu tiên với Grails

16 13 0
Làm chủ Grails: Xây dựng ứng dụng đầu tiên với Grails

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Hãy xem sức mạnh lớn thế nào trong một bộ khung web nhỏ bé này Scott Davis , Tổng Biên tập, AboutGroovy.com Tóm tắt: ™Các nhà lập trình Java không cần từ bỏ ngôn ngữ yêu thích của họ và các cấu trúc hạ tầng phát triển đang có để thực hiện một khung phát triển web hiện đại mới. Trong lần đăng báo đầu tiên của loạt bài hàng tháng Làm chủ Grails Mastering Grails, chuyên gia về Java Scott Davis đưa ra Grails và trình diễn làm thể nào để thiết kế ứng dụng Grails đầu tiên...

Làm chủ Grails: Xây dựng ứng dụng với Grails Hãy xem sức mạnh lớn khung web nhỏ bé Scott Davis , Tổng Biên tập, AboutGroovy.com Tóm tắt: ™Các nhà lập trình Java khơng cần từ bỏ ngơn ngữ u thích họ cấu trúc hạ tầng phát triển có để thực khung phát triển web đại Trong lần đăng báo loạt hàng tháng Làm chủ Grails Mastering Grails, chuyên gia Java Scott Davis đưa Grails trình diễn làm thể để thiết kế ứng dụng Grails bạn Cho phép được giới thiệu bạn với Grails cách khung phát triển web nguồn mở: Ruby on Rails Khi Rails công bố, thu hút nhà phát triển Khả tảng đỡ Rails giúp bạn tự xây dựng dự án khoảng thời gian nhiều so với trước Quy ước so với cấu hình ý tưởng từ Rails có nghĩa ứng dụng bạn tự động ràng buộc lại dựa chương trình dễ hiểu có tên khơng phải tệp cấu hình xml hay bị lỗi buồn tẻ Khả siêu chương trình Ruby cho phép đối tượng phần thừa hưởng phương thức trường cần thiết để vận hành mà không làm tắc nghẽn mã nguồn Rails (và vẫn) xứng phong tước ngưỡng mộ, đưa cho nhà phát triển Java lựa chọn khó khăn Liệu có phải từ bỏ Java quen thuộc để đổi lấy đầy hứa hẹn phải làm với mã Java tồn nay, với máy chủ sản phẩm nay, với cán phát triển Java có kinh nghiệm? Về loạt viết Grails khung phát triển web đại gắn với công nghệ quen thuộc Java Spring Hibernate với kinh nghiệm thực tiễn đương thời quy ước so với cấu hình Như viết Groovy, Grails tạo cho bạn tích hợp thơng suốt mã Java có sẵn mà tăng thêm tính linh hoạt động ngôn ngữ viết Sau bạn học Grails bạn khơng nhìn phát triển Web theo cách cũ Gia nhập Grails Grails cho bạn kinh nghiệm phát triển Rails gắn chặt với công nghệ thừa nhận Java Nhưng Grails cổng đơn giản kiểu "tôi vậy" Rails Java Grails rút học từ Rails trộn chúng với tinh tế phát triển Java đại Ý nghĩ truyền cảm hứng, không chuyển dịch Để bắt đầu loạt Làm chủ Grails, viết giới thiệu bạn với Grails, cho bạn thấy làm để cài đặt qua việc xây dựng ứng dụng Grails đầu tiên: chuyến lập kế hoạch mà bạn tiếp tục làm việc với viết sau loạt Sức mạnh Groovy Do Rails gắn chặt chẽ với ngơn ngữ lập trình Ruby, Grails khơng thể khơng có sức mạnh to lớn Groovy (xemTài nguyên) Groovy ngơn ngữ động chạy JVM hịa nhập thơng suốt ngôn ngữ Java Nếu bạn đọc loạt dài Practically Groovy developerWorks, bạn làm quen với sức mạnh ngơn ngữ lập trình Nếu bạn chưa đọc, đừng lo — bạn học Grails, bạn có nhiều Groovy học Nó khơng khó Groovy chủ định thiết kế riêng cho nhà phát triển JAVA Ví dụ, Groovy cho phép bạn giảm mạnh mẽ số lượng mã JAVA mà thông thường bạn phải viết Bạn không cần viết phần thu phần cài (getters and setters) cho trường bạn, Groovy cung cấp chúng cho bạn cách tự động Khơng cịn phải viết vòng lặp for Iterator i = list.iterator() qua danh sách khoản mục list.each làm cách xác liệt Nói cách đơn giản, Groovy ngơn ngữ Java trở thành viết kỷ thứ 21 Groovy không hấp dẫn tý nhà phát triển Java bắt họ phải viết lại tồn ứng dụng từ ban đầu để tận dụng ưu May mắn là, Groovy tích hợp thơng suốt mã bạn Groovy không thay ngơn ngữ Java — Nó phận hỗ trợ phát triển Bạn học Groovy nhanh cuối cùng, mã Groovy mã Java Hai ngơn ngữ dễ tương thích với nên bạn đổi tên tệp làm việc tệp java thành tệp groovy — ví dụ, thay đổi Person.java thành Person.groovy — để có giá trị hồn hảo (và chạy được) tệp Groovy (mặc dù tệp khơng tận dụng lợi ích từ ngơn ngữ ngào mà Groovy đem lại) Mức độ tương thích cao ngơn ngữ Groovy Java có nghĩa Grails kiến tạo lại máy vận hành gặp phải cơng nghệ chủ đạo sử dụng môi trường Thay vào đó, cho phép bạn sử dụng thư viện quen thuộc JAVA qua nhóm Groovy-colored JUnit TestCase bọc Groovy giới thiệu GroovyTestCase Grails đưa điều chỉnh Ant xây dựng với GANT, thực Groovy Ant Grails gói Hibernate lớp ngồi Groovy mỏng gọi GORM — the Grails Object/Relational Mapper Đây ví dụ Grails cho phép bạn cân tất kinh nghiệm Java có tận dụng ưu điểm thực tiễn phát triển web đại Để đánh giá đầy đủ Grails, bạn phải trực tiếp thử nghiệm Bây thời điểm cài đặt Grails tạo ứng dụng Web bạn Cài đặt Grails Tất thứ bạn cần để chạy ứng dụng Grails nằm tệp nén (ZIP) Tất thư viện trực thuộc — Groovy, Spring, Hibernate, gọi vài tên — có sẵn sẵn sàng sử dụng Để cài Grails: Tải giải nén grails.zip từ địa Grails (xem Tài nguyên) Tạo biến môi trường (environtment variable) GRAILS_HOME Thêm $GRAILS_HOME/bin vào PATH Tốt rồi, bạn cần cài JDK (Grails tốt khơng tốt q.) Grails 1.0 chạy Java 1.4, 1.5, 1.6 Nếu khơng biết bạn cài phiên gõ java -version dấu nhắc câu lệnh Nếu cần, tải cài Grails-compatible JDK (xem Tài nguyên) Khi kết thúc bước cài đặt, gõ grails -version để kiểm tra kết Nếu bạn chào với biểu ngữ thân thiện, tức việc cấu hình xác: Welcome to Grails 1.0 - http://grails.org/ Licensed under Apache Standard License 2.0 Grails home is set to: /opt/grails Máy chủ Web sở liệu Sử dụng freebies Đối với ứng dụng báo này, bạn sử dụng máy chủ web sở liệu mà Grails cung cấp miễn phí Trong viết sau này, tơi cung cấp cho bạn hướng dẫn bước để chạy Grails ngược so với máy chủ khác bạn Trong đó, khơng phải lo lắng việc lang thang grails.org tìm kiếm tài liệu trực tuyến (xem Tài nguyên) Thú vị là, bạn không cần phải tách riêng máy chủ web cài để chạy ứng dụng Grails Grails tự chuyển chứa Jetty servlet gắn vào Bạn gõ grails runapp để có ứng dụng chạy chứa Jetty (xem Tài nguyên) chuyển qua giai đoạn triển khai thông thường Chạy ứng dụng Grails máy chủ có bạn khơng thành vấn đề grails war tạo tệp chuẩn mà bạn triển khai Tomcat, JBoss, Geronimo, WebSphere® phần mềm chứa Java EE 2.4-compliant servlet Bạn khơng cần phải có sở liệu cài riêng biệt Grails chuyển tải với HSQLDB (xem Tài nguyên) sở liệu Java Sau có sở liệu có sẵn từ bên ngồi, bạn tăng hiệu suất làm việc Sử dụng sở liệu khác, MySQL, PostgreSQL, Oracle Database, DB2 đơn giản Hibernate GORM Nếu bạn có JDBC ổ đĩa JAR cài kết nối thông thường tay, đổi sang DataSource.groovy, bạn giao tiếp với sở liệu bạn Viết ứng dụng Grails bạn Tôi lại nhiều — tối thiểu 40 chuyến năm Tơi thấy lịch trình cho tơi biết tơi cần phải đâu đó, lại khơng địa điểm đâu Các đồ trực tuyến lại có vấn đề ngược lại: chúng làm tốt với việc đường, lại làm không tốt với việc thời gian lúc Do số loạt viết này, bạn thiết lập ứng dụng Grails đặc thù giúp bạn thời gian địa điểm để lập kế hoạch chuyến Thơng báo tin Bạn có thấy liệu viết tương lai loạt viết trình bày Grails gắn với Google Calendar Google Maps? Tôi Để bắt đầu, thư mục trống gõ grails create-app trip-planner Sau đợt thao tác, bạn thấy thư mục tên người lập kế hoạch chuyến (trip-planner) Tương tự Maven, Rails AppFuse, Grails tạo tảng chuẩn cấu trúc thư mục cho bạn Nếu bạn thấy hoàn toàn hy vọng bị kiềm chế hạn chế làm việc với khung trừ bạn thiết kế tỉ mỉ thư mục riêng bạn, bạn khơng cịn hứng thú làm việc với Grails Một phần quy ước quy ước so với truyền thống cho phép bạn làm việc với ứng dụng Grails nắm đơn vị sở (bit) lưu giữ khu vực (bucket) Thay đổi thư mục người lập kế hoạch chuyến gõ grails createdomain-class Trip Nếu việc thuận buồm xi gió, bạn có hai tệp chờ: grails-app/domain/Trip.groovy grailsapp/test/integration/TripTests.groovy Tơi nói phần kiểm tra viết sau Hiện giờ, tập trung vào nhóm miền, lúc đầu trơng Ví dụ 1: Ví dụ Nhóm vùng tạo từ Grails class Trip{ } Khơng có nhiều để xem đây, bắt tay triển khai Tạo trường vào chuyến (Trip) Ví dụ 2: Ví dụ Lớp Trip với trường thêm vào class Trip { String name String city Date startDate Date endDate String purpose String notes } Như tơi nói trên, bạn khơng phải lo lắng để tạo getters setters: Groovy linh hoạt tạo chúng cho bạn Trip có nhiều phương thức linh hoạt hiệu với tên tự nói lên tất cả:  Trip.save() lưu liệu vào bảng Trip sở liệu HSQLDB  Trip.delete() xoá liệu từ bảng Trip  Trip.list() đem lại danh sách Trip  Trip.get() đem lại Trip Tất phương thức ngày đơn giản bạn cần chúng Chú ý Trip khơng mở rộng cho nhóm bố mẹ thực giao diện thần kỳ Do lực siêu chương trình Groovy, phương thức xuất vị trí phù hợp nhóm phù hợp (Chỉ nhóm thư mục grailsapp/domain có phương thức liên quan đến tính liên tục này) Xây dựng trình điều khiển khung nhìn Tạo nhóm miền nửa chiến Mọi mơ hình cần có trình điều khiển (controller) tốt vài khung nhìn (views) để số thứ thể (Tơi giả định bạn làm quen với mơ hình Model-View-Controller; xem Tài nguyên Đánh grails generate-all Trip để thiết kế lớp grailsapp/controllers/TripController.groovy phù hợp Groovy Server Pages (GSPs) grails-app/views/Trip Đối với danh sách hoạt động trình điều khiển, có danh sách tương ứng tệp gsp tạo ra, create.gsp Ở bạn thấy lợi ích quy ước so với cấu hình hoạt động: khơng cần có tệp XML để cân lại với phần tử Mọi lớp miền cặp với trình điều khiển dựa vào tên Mọi hoạt động trình điều khiển phù hợp với khung nhìn dựa vào tên Bạn tránh kiểu cấu hình dựa vào tên bạn thích, phần lớn thời gian bạn theo quy ước ứng dụng bạn hoạt động Chú ý xem grails-app/controller/TripController.groovy, trình bày Ví dụ 3: Ví dụ TripController class TripController { def list = { if(!params.max) params.max = 10 [ tripList: Trip.list( params ) ] } } Điều nhà phát triển Java thường ý với vài dịng mã làm Thực danh sách hành động, ví dụ Điều quan trọng phương thức nằm dòng cuối Grails chuyển lại sơ đồ chưa hoàn chỉnh yếu tố đơn tên tripList Dòng cuối phương thức Groovy câu lệnh quay trở lại ẩn (a implicit return statement) Bạn đánh tay chữ: return bạn thích Thành phần tripList ArrayList (danh sách mảng) đối tượng Trip lấy từ sở liệu phương thức Trip.list() Thông thường phương thức cho lại tất liệu từ bảng Dòng ghi là: "Này, đưa vào thông số lớn URL, sử dụng để giới hạn số lượng Trip quay trở lại Nếu không, giới hạn số lượng Trip đến 10 Đường dẫn http://localhost:8080/trip-planner/trip/list tạo hoạt động Ví dụ: http://localhost:8080/trip-planner/trip/list?max=3 hiển thị chuyến 10 thường lệ Nếu bạn muốn thể nhiều chuyến đi, Grails tạo kết nối tự động đánh số thứ tự trước sau Vậy sơ đồ chưa hoàn chỉnh (hashmap) sử dụng nơi nào? Hãy nhìn vào grails-app/views/list.gsp, Ví dụ 4: Ví dụ list.gsp ${trip.id?.encodeAsHTML()} list.gsp HTML cũ đơn giản với GroovyTagLibs Bất đứng đầu g: GroovyTag Trong ví dụ 4, chuyển qua Chuyến tripList ArrayList thiết kế nên hoàn chỉnh HTML Việc hiểu trình điều khiển (controllers) tóm gọn thành ba chữ R: return (sự quay lại), redirect (sự chuyển hướng) render (sự biểu hiện) Một vài hoạt động tận dụng lợi trạng thái quay lại ngầm định (implicit return statement) nhằm đưa lại liệu vào trang GSP với tên cũ Một số hoạt động định hướng lại cho bạn Ví dụ để chuyển liệu lại tới trang GSP tên tượng tự Một số hành động chuyển hướng bạn Ví dụ, index (chỉ số) hoạt động mà hướng tới (get called) bạn không xác định hoạt động URL: def index = { redirect(action:list,params:params) } Trong trường hợp TripController chuyển hướng bạn đến danh sách hoạt động, qua tham số (hoặc QueryString) sơ đồ chưa hoàn chỉnh (hashmap) params Cuối hoạt động lưu trữ (xem ví dụ 5) khơng có trang lưu trữ gsp tương ứng Nó chuyển hướng bạn đến trang hoạt động trưng bày ghi lưu lại vào sở liệu mà khơng có lỗi Nếu khơng hồn trả lại trang create.gsp, bạn nhìn thấy lỗi thử lại Ví dụ Hoạt động lưu trữ def save = { def trip = new Trip(params) if(!trip.hasErrors() && trip.save()) { flash.message = "Trip ${trip.id} created" redirect(action:show,id:trip.id) } else { render(view:'create',model:[trip:trip]) } } Nhưng khơng cần phải nói thêm Grails hoạt động nào, xem q trình hoạt động Ứng dụng hoạt động Gõ grails run-app dịng lệnh Sau loạt thơng điệp chạy qua hình, bạn nhận thơng điệp ghi là: Server running Browse to http://localhost:8080/trip-planner (Máy chủ chạy Tìm http://localhost:8080/trip-planner) Nếu bạn có máy chủ chạy cổng 8080, bạn nhận kết xuất lõi kết thúc : Server failed to start: java.net.BindException: Address already in use (Máy chủ không khởi động được: java.net.BindException: Địa bị sử dụng) Bạn dễ dàng thay cổng mà Jetty chạy theo hai đường Bạn tạo thay đổi tùy nghi cách gõ grails -Dserver.port=9090 run-app Để giữ cố định thay đổi nhìn vào $GRAILS_HOME/scripts/Init.groovy tìm dòng mà bắt đầu serverPort thay đổi giá trị serverPort = System.getProperty('server.port') ? System.getProperty('server.port').toInteger() : 9090 Giờ bạn chạy Grails cổng mà bạn lựa chọn, đánh URL vào tìm kiếm web bạn Bạn nhìn thấy hình chào đón đưa danh sách tất trình điều khiển bạn, Hình 1: Hình Màn hình chào mừng ứng dụng Grails Nhấn vào đường dẫn TripController Bạn có ứng dụng đầy đủ CRUD (tạo ra, đọc, cập nhật, xóa) tầm tay để thao tác Tạo chuyến sử dụng trang thể hình 2: Hình Tạo lập trang chuyến Hiệu chỉnh chuyến bạn cách sử dụng trang hình 3: Hình Trang danh sách chuyến Và lâu để bạn đưa ứng dụng lên chạy? Có dịng mã? Đây cách bạn tìm hiểu: Nhấn Ctrl-C để đóng Grails Gõ grails stats Bạn thấy hiển thị hình: + + -+ -+ | Name | Files | LOC | + + -+ -+ | Controllers | 1| | Domain Classes | Integration Tests | | 66 | 1| 1| 8| 4| + + -+ -+ | Totals | 3| 78 | + + -+ -+ Mất 100 dịng mã để thực tất chức ứng dụng Không tồi chút Nhưng cho phép trình bày thêm gợi ý trước kết thúc Tạo trình điều khiển (controller) khung nhìn (views) tập tuyệt vời, có tệp vật lý đĩa giúp minh họa tất thứ liên kết với Tuy nhiên, làm cho tơi việc: xóa nội dung lớp TripController thay chúng class TripController{ def scaffold = Trip } Dòng lệnh đơn yêu cầu Grails thực tất thứ làm với trình điều khiển trước đây, để tạo tất hành động danh sách (list), lưu trữ (save), sửa đổi (edit) nhớ hoạt động thời gian chạy Ba dịng mã thay 66 sản xuất tất cho hành vi Gõ lại grails run-app —Tất liệu bạn Đừng hoảng sợ Nhấn CtrlC để đóng Grails Lần này, gõ grails prod run-app Bạn chạy chế độ sản xuất, điều có nghĩa liệu bạn lưu lần khởi động máy chủ Nhấn cách thức bạn để tới TripController lưu thêm số ghi Bạn nhận thấy khác biệt hành vi ứng dụng Nếu biết tất thứ bạn nhìn thấy trình duyệt điều khiển 15 dòng mã, cho bạn ý tưởng sức mạnh Grails Kết luận Tơi hy vọng bạn thích thú với cảm giác Grails Một sức mạnh đáng kinh ngạc đóng gói vào gói phần mềm nhỏ bé, bạn cào lên bề mặt Cài đặt khung cơng việc liên quan giải nén tập tin Tạo ứng dụng cách gõ cặp lệnh từ vết cào (trên bề mặt gói) Tơi hy vọng lần giới thiệu thần tốc kích thích ham muốn bạn với Grails Chắc chắn tạo bước tiến bạn để phát triển dựa ví dụ đưa vào hướng thú vị Trong lần cài đặt tháng tiếp theo, bạn nhiều thời gian với GORM Bạn lưu liệu vào sở liệu MySQL, đặt số liệu thích hợp vào, thiết lập quan hệ - nhiều (one-to-many) Khơng thêm nhiều dịng lệnh, bạn tăng đáng kể khả ứng dụng lập kế hoạch chuyến (tripplanner) Cho đến lúc đó, thưởng thức với Groovy Grails Bạn khơng nhìn vào việc phát triển trang web theo cách lại Tải Mơ tả Mã ví dụ Tên j-grails01158.zip Thơng tin phương thức tải Kích thước 214KB Phương thức tải HTTP Mục lục  Sức mạnh Groovy  Cài đặt Grails  Viết ứng dụng Grails bạn  Ứng dụng hoạt động  Kết luận ...Để bắt đầu loạt Làm chủ Grails, viết giới thiệu bạn với Grails, cho bạn thấy làm để cài đặt qua việc xây dựng ứng dụng Grails đầu tiên: chuyến lập kế hoạch mà bạn tiếp tục làm việc với viết... http:/ /grails. org/ Licensed under Apache Standard License 2.0 Grails home is set to: /opt /grails Máy chủ Web sở liệu Sử dụng freebies Đối với ứng dụng báo này, bạn sử dụng máy chủ web sở liệu mà Grails. .. chạy ứng dụng Grails Grails tự chuyển chứa Jetty servlet gắn vào Bạn gõ grails runapp để có ứng dụng chạy chứa Jetty (xem Tài nguyên) chuyển qua giai đoạn triển khai thông thường Chạy ứng dụng Grails

Ngày đăng: 10/05/2021, 08:36

Tài liệu cùng người dùng

Tài liệu liên quan