「Java開發指南」MyEclipse如何支持Spring Scaffolding?(四)

在上文中(點擊這裏回顧>>)主要爲大家介紹了應用程序分層、代碼助手等內容,本文將繼續介紹Spring DSL模型等。

5. Spring DSL模型

支持Spring的MyEclipse還有一個特性,它是面向那些希望通過使用抽象層(模型驅動開發)來加速Spring應用程序開發的開發人員的。抽象層被稱爲領域特定語言(DSL), Spring DSL定義了11個抽象。每個Spring DSL抽象管理/生成一個或多個Spring web應用程序源工件(Java代碼或XML配置文件),每個抽象都有自己專用的編輯器,用於配置抽象的實例。

「Java開發指南」MyEclipse如何支持Spring Scaffolding?
Spring DSL模型

Spring DSL定義了11個抽象,每個抽象都與一個或多個Java、Spring和JPA構件直接相關,並生成一組不同的代碼或配置構件。

  • Spring DSL – 用於Spring DSL代碼生成的項目範圍配置。
  • Model Package – 用於命名空間和分組相關的Spring DSL組件,模型包可以包含任何頂級Spring DSL元素,包括其他模型包。模型包直接與Java包相關,並且在模型包中創建的Spring DSL構件被生成爲匹配的Java包。
  • Web Controller – 用於使用Spring MVC定義應用程序的Web層和管理相關文件,Web控制器被生成爲帶有@Controller註解的Spring組件,這是Web層組件的一個特殊構造型。
  • Service – 用於定義業務層組件和管理相關文件,Services(服務)被生成爲帶有@Service註解的Spring組件,這是服務層組件的專用構造型。
  • Component – 用於定義通用的Spring管理Java bean和管理相關文件,組件被生成爲帶有@Component註釋的Spring組件,這是具有可配置作用域的Spring管理組件的通用構造型。
  • Operation – 用於定義控制器、服務和組件的方法,操作表示應用程序邏輯,它們使用輸入和輸出來交換數據。操作直接在各自的Controller、Service和Component類中生成,並且它們的生成略有不同,以說明Spring構造型所需的不同實現。
  • Domain Object – 用於定義應用程序的域模型和管理相關文件。默認情況下,將域對象生成爲普通的舊Java對象(POJO)。如果一個域對象與一個數據訪問對象相關聯,那麼這個域對象被註釋爲一個帶@Entity (JPA)註釋的類,並且它與一個主鍵類(@IdClass)相關聯。可以使用基本數據類型將字段添加到域對象中,並且域對象可以與其他域對象建立關係。
  • Data Access Object (DAO) – 用於將數據訪問邏輯與應用程序邏輯分離,並管理相關文件。DAO管理領域對象的持久性,並將其生成爲@Repository註釋的Spring組件,這是數據訪問層組件的專用構造型,DAO還可以包含稱爲命名查詢的預定義查詢。
  • Named Query – 用於定義數據訪問對象(dao)的查詢,命名查詢使用SQL或JPQL (Java持久化查詢語言)定義,命名查詢生成爲Spring @Repository組件中的@NamedQueries和@NamedQuery註釋。
  • Exception – 用於定義自定義異常和管理相關文件,在Java中,異常被生成爲異常類。
  • Flow – 用於使用Spring web Flow實現應用程序的web層。

編輯器

每個Spring DSL組件都有一個關聯的編輯器,基於Spring DSL的開發由開發人員創建Spring DSL組件的實例,並使用各自的編輯器配置它們組成。當調用代碼生成時,由各自組件管理的代碼和配置文件將根據其配置生成。

快速開始學習Spring DSL和Spring編輯器的一個好方法是將“啓用Spring DSL”特性與“Scaffold Spring CRUD應用程序”特性結合起來。當您只使用scaffolding時,Spring DSL或Spring editor在項目中不可用。但是如果在運行scaffolding嚮導之前運行Enable Spring DSL嚮導(從而啓用Spring DSL並將Spring DSL視圖添加到您的項目中),scaffolding嚮導將爲所有搭建的應用程序組件創建相應的Spring DSL工件(模型包、控制器、服務等)。它們出現在項目的Spring DSL視圖中,您可以使用Spring DSL和Spring編輯器維護和增強scaffolded構件。

引導

在使用Spring DSL進行應用程序開發的過程中,開發人員將相關的Spring DSL構件的實例添加到他們的項目中。他們使用各自的編輯器根據需求配置構建,MyEclipse根據配置生成源代碼。這種自引導爲應用程序開發提供了極大的速度和敏捷性,因爲開發人員不必糾結於Spring的細節或保持相關工件的同步,這一切都是在不限制開發人員使用標準Eclipse Java編輯器或XML編輯器維護應用程序工件的情況下完成的。一些抽象(例如,領域對象、DAO)可以用來生成完全實現的應用程序組件,這些組件可以隨時運行,不需要額外的開發。其他抽象(例如,控制器、服務、組件)關注於Spring的框架生成和配置,而生成的Java類和Java方法的實際實現是通過Java編碼完成的。

各種功能(一些可選的)可以添加到項目中,包括:

  • 添加Spring應用程序運行時依賴項。
  • 用所需的Spring配置引導項目。
  • 啓用代碼生成生成器來自動生成代碼。
  • 爲Spring/Java工件的自動逆向工程啓用代碼同步構建器。
  • 啓用Spring DSL,包括在項目中啓用Spring DSL視圖。
  • 將Spring Nature應用到項目中,以便通過Spring Elements節點查看和編輯Spring配置。
  • 支持按應用層(web、服務、領域和DAO)生成代碼。
  • 爲代碼生成配置目標項目和文件夾。

注意:支持Spring的MyEclipse也將在CRUD搭建期間引導您的項目;但是scaffolding嚮導不會爲您的項目設置代碼生成或Spring DSL支持。如果您希望同時支持scaffolding和Spring DSL,那麼應該首先啓用Spring DSL,然後運行Spring scaffolding。

5.1 Spring DSL視圖

當Spring代碼生成facets被添加到Eclipse項目中時,一個Spring DSL視圖被添加到項目中,當使用MyEclipse Spring透視圖查看時,這個視圖在project Explorer中是可見的。該元素顯示了項目的Spring DSL構件的層次視圖,它可以用於與Spring DSL交互,包括:

  • 配置項目級代碼生成設置(雙擊Spring DSL,或右鍵單擊,並從菜單中選擇Open)
  • 打開Spring DSL編輯器(雙擊Artifact,或者右鍵單擊,並從菜單中選擇Open)
  • 創建新的Spring DSL工件(右鍵單擊,並從菜單中選擇New)
  • scaffolding(右鍵單擊,選擇Scaffold Spring CRUD Application From)

Spring DSL視圖與Eclipse中的Java源代碼視圖非常相似,因此它非常直觀,易於學習。工件由模型包組織,模型包直接與Java包相關。在一個模型包下,有一個或多個Spring DSL構件。如前所述,Spring DSL構件是管理一個或多個Java代碼構件的抽象,Spring DSL視圖允許您在抽象級別查看項目。如果您希望在代碼級別查看項目,那麼請查看源代碼。

「Java開發指南」MyEclipse如何支持Spring Scaffolding?
scaffolded項目的Spring DSL視圖

5.2 Spring DSL編輯器

每個Spring DSL工件都有一個用於配置工件的特定編輯器,它隨後會影響由Spring DSL工件管理的代碼和配置文件的生成。

篇幅有限,更多內容持續關注,下期見~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章