Giới thiệu Spring Roo, Phần 3: Phát triển các
phần bổ sung Spring Roo
Kiến trúc phần bổ sung của Spring Roo
Dưới dạng mẫu đơn giản nhất của mình, mt phần bổ sung là mt thành phần phần mềm bổ sung
một khả năng cụ thể cho một ứng dụng phn mềm. dụ, trong hầu hết các trình duyệt web, các
phần bổ sung cung cấp sự hỗ trợ video. Một dụ khác là Eclipse (mt IDE mã nguồn mở mà
nhiều nhà phát triển Java™ sử dụng hoặc ít nhất đều biết). Hầu hết các khả năng đều do các phần
bổ sung cung cấp, như hỗ trợ JUnit, hỗ trợ SVN, v.v.. Tôi đang sử dụng cụm tphần bổ sung
làm mt thuật ngữ chung dùng cho các trình cắm thêm và các phn mở rộng.
Spring Roo cũng có khái niệm về các phn b sung như sau:
1. Để cho phép các nhà phát trin bên thứ ba tạo ra các khnăng để mở rộng các khả năng
của Spring Roo.
2. Để giúp Spring Roo dễ dàng bổ sung các tính năng mới.
3. Để giúp Spring Roo vẫn còn một chút nổi trội (tức là, làm giảm kích cỡ của Spring Roo).
Các thành phần logic của Spring Roo
Spring Roo được chia thành hai phần logic.
Các thành phần cốt lõi của Spring Roo: Để cho phép phát triển phần b sung, Spring Roo
cung cấp một tập các thành phần cốt lõi để tạo thành mt môi trường thực hin được lưu trữ trên
máy chủ cho các phần bổ sung khác nhau. Các thành phần này là Classpath (Đường dẫn lớp), hỗ
tr Process Manager (Trình quản quy trình) và Shell (Trình v). Trong đó, Process Manager
hỗ trợ Project (Dự án) và File Undo (Hoàn lại tệp). Project hỗ trợ Model (Mô hình), Metadata
(Siêu dliệu) và File Monitor (Giám sát tệp). Cui cùng, có mt thành phần Support (Hỗ trợ),
được tt cả sử dụng. Hình 1 đưa ra một biểu diễn trực quan về các mi quan hệ này.
Hình 1. Các thành phần cốt lõi Spring Roo
Chúng ta hãy bàn vmột s các mô đun cốt lõi:
1. Support (Hỗ trợ) Mô đun org.springframework.roo.support cung cấp các lớp
tiện ích ph biến được tất cả các mô đun cốt lõi và các phần bổ sung sử dụng. Một số lớp
tiện ích gồm Assert, FileCopyUtils, XmlUtils, StringUtils, FileUtils, v.v.. Ví
dụ, nếu bạn muốn sao chép nội dung của một tệp vào tệp khác, bạn có thể sử dụng tin
ích FileCopyUtils để làm việc đó cho bạn.
2. Metadata (Siêu dliệu) đun org.springframework.roo.metadata cung cấp mt
giao diện nhà cung cấp dch vụ siêu dliệu và việc thực hiện gồm đăng ký phụ thuộc
lưu trữ trong bộ nhớ đệm.
3. File monitor (Giám sát tệp) Mô đun org.springframework.roo.file.monitor xuất bản
các s kiện sau khi phát hiện ra các thay đổi hệ thống tệp (cách thực hiện mặc định sử
dụng thăm dò đĩa có mở rộng tự động).
4. File undo (Hoàn lại tệp) Mô đun org.springframework.roo.file.undo cung cấp một
phương tiện hoàn lại tệp để sử dụng theo trình quản quy trình.
5. Project (Dán) đun org.springframework.roo.project trừu tượng hóa các hệ thống
xây dựng dự án phía người dùng cui điển hình như Apache Maven và Apache Ant.
6. Process manager (Trình quản quy trình) — Mô đun
org.springframework.roo.process.manager cung cấp một sự trừu tượng hóa hệ thống tệp
như-ACID gồm có khôi phục đĩa và đồng bộ hóa quá trình.
7. Classpath (Đường dẫn lớp) đun org.springframework.roo.classpath thực hiện
phân tích cú pháp cây cú pháp trừu tượng và kết buộc kiểu của các đơn v biên dịch Java
AspectJ.
Các thành phần cốt lõi của Spring Roo: Spring Roo cung cấp tất cả chức năng thông qua các
phần bổ sung. Các phần bổ sung cơ bản kèm theo Roo V1.1.3 là:
Add-On Creator (B to phần bổ sung) — Phần bổ sung
org.springframework.roo.addon.creator cho phép dễ dàng to các phần bổ sung Roo của
bên thứ ba.
Backup (Sao lưu) — Phần bổ sung org.springframework.roo.addon.backup cho phép
thực hiện các bản sao lưu trong một tệp ZIP bằng cách gõ backup.
Cloud Foundry (Xưởng tạo mẫu đám mây) Phần bổ sung
org.springframework.roo.addon.cloud.foundry cung cấp sự hỗ trợ cho VMware Cloud
Foundry (Xưởng tạo mẫu đám mây của VMware).
Configurable (Có thể cấu hình) — Phần bổ sung
org.springframework.roo.addon.configurable cung cấp sự hỗ trợ để đưa o chú thích
@Configurable của Spring thông qua mt ITD (Intertype Declaration - Khai báo giữa các
kiểu) của AspectJ.
Database reverse engineering (K thuật đảo ngược cơ sở dữ liệu) — Phần bổ sung
org.springframework.roo.addon.dbre cung cấp sự hỗ trợ cho kỹ thuật đảo ngược gia tăng
của cơ sở dữ liệu hiện có.
Data on Demand (Dữ liệu theo yêu cầu) Phần bổ sung
org.springframework.roo.addon.dod cung cấp sự hỗ trợ để to tự động dữ liệu ví dụ mẫu
thường dùng cho các bài kiểm tra tích hợp.
Email (Thư điện tử) — Phần bổ sung org.springframework.roo.addon.email cung cấp sự
hỗ trợ để tích hợp và cấu hình hỗ trợ thư điện tử của Spring trong dự án đích.
Entity (Thực thể) — Phn bổ sung org.springframework.roo.addon.entity cung cấp sự hỗ
tr rộng rãi để bảo trì tự động các lớp @Entity của Java Persistence API (API Tồn tại lâu
bền của Java).
Dynamic Finder (B dò tìm động) — Phần bổ sung
org.springframework.roo.addon.finder tạo ra các bộ dò tìm ngôn ngữ truy vấn JPA tương
tch hoàn toàn với mã an toàn-kiểu.
Git — Phần bổ sung org.springframework.roo.addon.git cung cấp sự hỗ trợ để tích hợp
GIT trong dán. Mỗi lệnh được thực hin thành công sẽ được cam kết tự động với một
kho lưu trữ GIT cục bộ.
GWT (Bộ công cụ Web của Google) Phần bổ sung
org.springframework.roo.addon.gwt cung cấp sự hỗ trợ để dựng giao diện ni dùng
(UI) bằng cách sử dụng GWT (Google Web Toolkit).
JavaBean — Phn bổ sung org.springframework.roo.addon.javabean tự động duy trì các
getter/các setter của JavaBean cho các lớp với một chú thích @RooJavaBean.
JDBC (Kết ni cơ sở dữ liệu Java) — Phần bổ sung org.springframework.roo.addon.jdbc
gói gọn việc truy cập tuân thủ-OSGi với các trình điều khiển JDBC (Java DataBase
Connectivity) được phân phi trong các bó khác nhau (chủ yếu được các phần bổ sung
khác sdụng).
JMS (Hệ thống thông báo Java) Phần b sung org.springframework.roo.addon.jms
cung cấp sự hỗ trợ để cấu hình các thiết lập JMS (Java Messaging System) trong dự án
đích.
JPA (API tn tại lâu bền của Java) Phần bổ sung org.springframework.roo.addon.jpa
cài đặt mt trình cung cấp JPA cụ thể và thiết lập JDBC cho phù hợp.
JSON (Ký pháp đối tượng JavaScript) — Phần bổ sung
org.springframework.roo.addon.json bsung các phương thức tuần tự hóa và không tuần
t hóa có liên quan đến JSON cho các POJO (Plain old Java object Đối tượng Java bình
thường).
Logging (Ghi nhật ) Phần b sung org.springframework.roo.addon.logging thiết lập
Log4j, gm cấu hình mức-ghi nhật dựa vào-lệnh.
Pluralization (Số nhiều) — Phần bổ sung org.springframework.roo.addon.plural cung
cấp số nhiều của các danh t(chủ yếu được các phần bổ sung khác sử dụng).
Property Editor (Trình soạn thảo đặc tính) — Phần bổ sung
org.springframework.roo.addon.property.editor quản lýc trình soạn thảo đặc tính, khi
Spring MVC (Model-View-Controller – Bộ điều khiển Khung nhìn-Mô hình) u cầu.
Property File (Tệp đặc tính) — Phn bổ sung org.springframework.roo.addon.propfiles
cung cấp sự hỗ trợ để quản các tệp đặc tính trong dự án đích.
RooBot Client (Máy khách RooBot) — Phần bổ sung
org.springframework.roo.addon.roobot.client cung cấp sự hỗ trợ để quản lý phần bổ sung
thông qua máy chủ RooBot.
Security (Bảo mật) — Phn bổ sung org.springframework.roo.addon.security thiết lập
Spring Security, gm các trang đăng nhập, các bộ lọc và các phụ thuộc.
Serializable (Có thể tuần tự hóa) — Phần bổ sung
org.springframework.roo.addon.serializable b sung sự hỗ trợ java.io.Serializable (chẳng
hạn như bảo trì UID – Mã định danh người dùng) cho các kiểu Java cần thiết.
Solr cung cấp sự hỗ trợ để cấu hình và tích hợp các tính năng của Apache Solr trong dự
án đích Phần b sung org.springframework.roo.addon.solr cung cấp sự hỗ trợ để cấu
hình và tích hợp các tính năng của Apache Solr trong dự án đích.
Integration Test (Kiểm tra tích hợp) — Phần bổ sung
org.springframework.roo.addon.test tạo ra các bài kim tra tích hợp JUnit cho các thực
th của dự án.
ToStringPhần b sung org.springframework.roo.addon.tostring tạo ra một phương
thức toString() hợp lệ cho bất kỳ lớp nào chú thích @RooToString.
WebFlowPhần bổ sung org.springframework.roo.addon.web.flow cung cấp sự hỗ tr
để cấu hình và tích hợp các tínhng Spring Web Flow (Luồng Web Spring) trong dự án
đích.
Web MVC Controller (B điều khiển MVC Web) Phn b sung
org.springframework.roo.addon.web.mvc.controller cung cấp sự hỗ trợ cho cấu hình
tích hợp các bộ điều khiển MVC của Spring trong dự án đích.
Web MVC Embedded (Web MVC được nhúng) Phần bổ sung
org.springframework.roo.addon.web.mvc.embedded cung cấp phần mở rộng cho phần bổ
sung MVC, cho phép bsung các tính năng nhúng như các bản đồ, các đoạn video, v.v..
o các trang web.
Web MVC JSP — Phn b sung org.springframework.roo.addon.web.mvc.jsp cấu hình
tích hợp các tínhng JSP MVC của Spring trong dự án đích.
Selenium (Selen) — Phần bổ sung org.springframework.roo.addon.web.selenium cung
cấp cấu hình và tích hợp các bài kiểm tra web Selen trong dự án đích.
Bây giờ chúng ta đã xem xét các thành phần cốt lõi của Spring Roo và các phần bổ sung cơ bản
do Spring Roo cung cấp, hãy viết các phần bổ sung riêng của chúng ta.
Về đầu trang
Môi trường thời gian chạy OSGi
Spring Roo được dựa trên OSGi, là tưởng cho kiến trúc phần bổ sung của Roo. OSGi cung cấp
một cơ sở hạ tầng rất tốt để phát triển các ứng dụng hướng dịch vụ nhúng và mô đun.
Trình vRoo sử dụng Apache Felix làm khung công tác thời gian chạy OSGi của mình cùng với
SCR (Service Component Runtime - Thời gian chạy của thành phần dịch vụ) để quản lý thành
phần và OBR (Repository Bundle OSGiOSGii kho lưu trữ) cho độ phân giải i. Có sẵn
các lệnh OSGi khác nhau trong trình vỏ Roo, mà bạn có thể xem chúng bằng cách gõ lnh help
osgi (Trợ giúp osgi), như trong Liệt kê 1.
Liệt kê 1. Lệnh help của Roo với OSGi
roo> help osgi
* osgi find - Finds bundles by name
* osgi framework command - Passes a command directly
through to the Felix shell infrastructure
* osgi headers - Display headers for a specific bundle
* osgi install - Installs a bundle JAR from a given URL
* osgi log - Displays the OSGi log information
* osgi obr deploy - Deploys a specific OSGi Bundle Repository (OBR) bundle
* osgi obr info - Displays information on a specific OSGi Bundle Repository
(OBR) bundle
* osgi obr list - Lists all available bundles from the
OSGi Bundle Repository (OBR) system
* osgi obr start - Starts a specific OSGi Bundle Repository (OBR) bundle
* osgi obr url add - Adds a new OSGi Bundle Repository (OBR) repository file
URL
* osgi obr url list - Lists the currently-configured
OSGi Bundle Repository (OBR) repository file URLs
* osgi obr url refresh - Refreshes an existing
OSGi Bundle Repository (OBR) repository file URL
* osgi obr url remove - Removes an existing
OSGi Bundle Repository (OBR) repository file URL
* osgi ps - Displays OSGi bundle information
* osgi resolve - Resolves a specific bundle ID
* osgi scr config - Lists the current SCR configuration
* osgi scr disable - Disables a specific SCR-defined component
* osgi scr enable - Enables a specific SCR-defined component
* osgi scr info - Lists information about a specific SCR-defined component
* osgi scr list - Lists all SCR-defined components
* osgi start - Starts a bundle JAR from a given URL
* osgi uninstall - Uninstalls a specific bundle
* osgi update - Updates a specific bundle
* osgi version - Displays OSGi framework version
Về đầu trang
Lệnh tạo phần bổ sung của Spring Roo