亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

spring Roo安裝使用簡介

2024-07-13 10:15:40
字體:
來源:轉載
供稿:網友

一直以來,Java/Spring開發被認為是笨重的代表,無法快速生成項目原型和骨架。所以,Spring推出了Spring Roo這個項目,幫助我們快速生成項目原型。本文參考自Spring Roo的官方文檔,如果熟悉英文的話可以直接看原文檔,內容更加豐富。

安裝

安裝命令行工具

Spring Roo是一套命令行工具,如果你使用的是Eclipse/STS,還可以使用Eclipse對應的插件。

首先先來下載命令行工具。到下載頁面,選擇對應版本下載。這里我選擇的是最新的2.0.0.RC1 ,畢竟我有更新強迫癥。下載完成之后解壓,會得到一個文件夾,其中bin目錄下就是Spring Roo的可執行文件了。可以看到它有bat和sh兩種格式,可以在不同系統上運行。為了方便以后在終端窗口運行,我建議同時將這個文件夾添加到環境變量中。

安裝好之后,打開命令提示符或者其他終端窗口,輸入roo命令,就可以啟動Roo了。值得提一點,Roo會在命令提示符對應的文件夾位置創建項目,所以如果需要在特定位置創建項目,先在命令提示符中切換到該文件夾,然后再啟動Roo。

spring,roo,roo教程,安裝

安裝Eclipse插件

打開你的Eclipse/STS,然后遵循以下步驟:

點擊菜單欄 Help ? Install New Software
點擊 Available Software sites
點擊 Import 按鈕
找到 “$ROO_HOME/conf/sts-sites-bookmarks.xml” 并確定,這里$ROO_HOME是你安裝Roo的目錄
根據需要選擇對應的版本
在過濾欄輸入roo
選中功能 Spring IDE Roo Support
然后一路確定并允許條款
最后重啟IDE即可

下面是官方文檔的圖,如果有疑問照著這張圖來就行了。

spring,roo,roo教程,安裝

到這一步還沒完,插件是安裝好了,但是還沒有配置。其實要配置的也很簡單,告訴插件你的Roo工具安裝到哪里就行了。點擊 Window ? Preferences ? Spring ? Roo Support ,打開設置,然后照著官方文檔截圖設置好你的工具路徑即可。

spring,roo,roo教程,安裝

這樣插件就設置完畢了。其實這個插件也沒啥作用,就是在Eclipse中開了一個窗口,能運行Roo命令,和直接在命令提示符中運行其實是一樣的。

使用Roo

運行Roo腳本

$ROO_HOME/samples文件夾下有三個示例項目腳本,使用Roo運行它們可以快速創建相應的項目。如果沒有耐心,可以直接從這里開始。

spring,roo,roo教程,安裝

比如說,我要運行clinic實例項目,就可以輸入以下命令:

roo> script --file clinic.roo

稍等片刻,程序就會創建完畢。

spring,roo,roo教程,安裝

最后創建出的是一個基于Maven的Spring Boot程序。在IDEA下是這么一個樣子。可以看到項目中有一個名字叫log.roo的日志文件,它記錄了這個Roo腳本執行的內容。另外不知道為什么程序在IDEA下會有一點報錯,不過不影響編譯和運行。

spring,roo,roo教程,安裝

這個PetClinic示例程序使用了Spring Security來保護頁面。我查閱了一下,Spring Boot下Spring Security默認的用戶名是user,密碼則在程序啟動的時候隨機輸出到控制臺中。最后運行截圖如下,大家可以自己運行和測試一下這個程序。

spring,roo,roo教程,安裝

腳本解釋

下面來解釋一下PetClinic這個程序的Roo腳本,讓我們來看看Roo是如何工作的。這里只做一下簡單解釋,如果需要詳細資料的話可以參考官方文檔的附錄,完整介紹了Roo的各種命令和參數以及用法。

首先是創建項目并指定頂級包名,這樣會創建一個基于Maven的Spring Boot項目。

project setup --topLevelPackage org.springframework.roo.petclinic

然后是指定JPA存儲類型,這里用的是Hibernate,數據庫是存儲在內存的HSQLDB。當然也可以使用其它數據庫,不過相應地需要增加用戶名等其他參數。

jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY

然后是幾個枚舉類,將會在實體類中用到,這里的~指代前面設置的頂級包名。

enum type --class ~.domain.reference.PetTypeenum constant --name DOGenum constant --name CATenum constant --name BIRDenum type --class ~.domain.reference.Specialtyenum constant --name CARDIOLOGYenum constant --name DENTISTRYenum constant --name NUTRITION

然后是項目中的幾個實體類。

entity jpa --class ~.domain.Pet --sequenceName PET_SEQ --entityFormatExpression "#{name} (#{type})"entity jpa --class ~.domain.Visit --sequenceName VISIT_SEQ --entityFormatMessage visit_formatentity jpa --class ~.domain.AbstractPerson --abstract entity jpa --class ~.domain.Vet --extends ~.domain.AbstractPerson --entityFormatExpression "#{lastName} (#{specialty})"entity jpa --class ~.domain.Owner --extends ~.domain.AbstractPerson --entityFormatExpression "#{lastName} (#{city})"

之后的叫本詳細設置了每個實體類的屬性以及對應關系,由于比較多所以我只挑選了幾個典型的。在設置實體類之前,需要使用focus命令指定要設置的實體類。

focus --class ~.domain.Petfield boolean --fieldName sendReminders --notNull --primitivefield string --fieldName name --notNull --sizeMin 1field number --fieldName weight --type java.lang.Float --notNull --min 0field enum --fieldName type --type ~.domain.reference.PetType --notNullfield set --fieldName visits --type ~.domain.Visitfocus --class ~.domain.AbstractPersonfield string --fieldName firstName --sizeMin 3 --sizeMax 30field string --fieldName lastName --notNull --sizeMin 3 --sizeMax 30field string --fieldName address --notNull --sizeMax 50 --sizeMin 1field string --fieldName city --notNull --sizeMax 30field string --fieldName telephone --notNullfield string --fieldName homePage --sizeMax 30field string --fieldName email --sizeMax 30 --sizeMin 6field date --fieldName birthDay --type java.util.Date --notNull

然后設置實體類之間的投影關系并設置JPA Repository。

entity projection --class ~.domain.VetInfo --entity ~.domain.Vet --fields id,firstName,lastName,specialty --entityFormatExpression "#{firstName} #{lastName}"repository jpa --entity ~.domain.Vet --interface ~.repository.VetRepository --defaultReturnType ~.domain.VetInforepository jpa --all --package ~.repositoryservice --all --apiPackage ~.service.api --implPackage ~.service.impl

然后是設置DTO(數據傳輸對象),它和頁面中的表單等信息對應,然后在后臺轉換為相應的實體類。在這里還可以指定finder,也就是查詢條件,查詢條件的規則請參考Spring Data JPA的相關內容。

dto --class ~.domain.PetNameAndWeightFormBeanfield string --fieldName namefield number --fieldName weight --type java.lang.Floatfinder add --entity ~.domain.Pet --name findByNameAndWeight --formBean ~.domain.PetNameAndWeightFormBean

然后是設置Spring Web MVC,這里指定Thymeleaf作為視圖層,并為所有控制器生成JSON和Thymeleaf視圖。

web mvc setupweb mvc view setup --type THYMELEAFweb mvc controller --all --responseType JSONweb mvc controller --all --responseType THYMELEAF

然后是生成查詢和詳情頁面。這里針對前面設置的所有查詢條件生成相應的查詢頁面,然后生成指定實體類的詳情頁面。最后指定了頁面語言,目前好像只支持英語和西班牙語。

// Publishing findersweb mvc finder --all --responseType THYMELEAF// Adding detailsweb mvc detail --entity ~.domain.Owner --field pets --views list,show,findByCityLike --responseType THYMELEAFweb mvc detail --all --views list,show --responseType THYMELEAFweb mvc language --code es

然后使用了Spring Security保護了一下程序。第一行的是使用Spring Security的默認配置,用戶名是user,密碼是打印在控制臺的隨機字符串。第二行配置了一下用戶權限,只有管理員角色的用戶才能執行刪除操作。

security setup --provider DEFAULTsecurity authorize --class ~.service.impl.OwnerServiceImpl --method delete.* --roles ADMIN

然后啟用了審計功能,程序會自動記錄相應實體類的編輯時間和編輯者。

jpa audit setupjpa audit add --entity ~.domain.Petjpa audit add --entity ~.domain.Ownerjpa audit add --entity ~.domain.Visitjpa audit add --entity ~.domain.Vet

然后啟用了Web服務端點功能,這些端點可以在/servicesURL下查看。

ws endpoint --service ~.service.api.OwnerService --sei ~.ws.api.OwnerWebService --class ~.ws.endpoint.OwnerWebServiceEndpoint --config ~.config.WsEndpointsConfigurationws endpoint --service ~.service.api.PetService --sei ~.ws.api.PetWebService --class ~.ws.endpoint.PetWebServiceEndpoint --config ~.config.WsEndpointsConfiguration

最后自動為這些實體類和服務生成單元測試和集成測試。

// Generating unitary tests for all entitiestest unit --class ~.domain.Ownertest unit --class ~.domain.Pettest unit --class ~.domain.Vettest unit --class ~.domain.Visit// Repository integration teststest integration --class ~.repository.VetRepositorytest integration --class ~.repository.OwnerRepositorytest integration --class ~.repository.VisitRepositorytest integration --class ~.repository.PetRepository// Controller integration teststest integration --class ~.web.OwnersCollectionJsonControllertest integration --class ~.web.PetsItemJsonControllertest integration --class ~.web.VetsCollectionThymeleafControllertest integration --class ~.web.VisitsItemThymeleafController

總結

以上就是本文關于spring Roo安裝使用簡介的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品一区二区性色av| 日韩毛片在线看| 久久久99久久精品女同性| 国产精品aaaa| 亚洲女同性videos| 国产美女高潮久久白浆| 欧美日韩国产在线| 日韩欧美亚洲范冰冰与中字| 日韩精品欧美国产精品忘忧草| 少妇久久久久久| 成人午夜高潮视频| 亚洲国产精品成人一区二区| 国产精品老女人精品视频| 伊人久久久久久久久久久| 国产一区二区三区18| 在线观看国产精品淫| 精品伊人久久97| 欧美视频国产精品| 欧美一区亚洲一区| 伊人青青综合网站| 久久99国产精品久久久久久久久| 国产91色在线播放| 91九色国产社区在线观看| 成人黄色短视频在线观看| 亚洲福利视频免费观看| 亚洲国产私拍精品国模在线观看| 欧美日韩美女在线| 国产精品大片wwwwww| 最近2019年中文视频免费在线观看| 久久天天躁狠狠躁夜夜躁| 成人黄色短视频在线观看| 色婷婷成人综合| www.欧美免费| 国产精品免费久久久久影院| 亚洲精品自拍偷拍| 91精品国产91久久久久福利| 97国产一区二区精品久久呦| 一区二区亚洲欧洲国产日韩| 久久伊人精品天天| 久久久之久亚州精品露出| 亚洲精品黄网在线观看| 91精品在线观看视频| 久久精品一区中文字幕| 日韩亚洲精品视频| 国产精品久久久久久av下载红粉| 亚洲一区二区三区成人在线视频精品| 亚洲性av网站| 国产欧美一区二区三区久久| 久久久精品一区二区| 免费91麻豆精品国产自产在线观看| 欧美精品情趣视频| 日韩在线观看免费全集电视剧网站| 欧美日韩性视频在线| 成人免费福利视频| 中文字幕成人精品久久不卡| 欧美大片大片在线播放| 国产精品视频白浆免费视频| 91综合免费在线| 视频在线一区二区| 神马国产精品影院av| 日本精品视频在线观看| 亚洲а∨天堂久久精品喷水| 蜜臀久久99精品久久久久久宅男| www.国产精品一二区| 国产97人人超碰caoprom| 亚洲丝袜av一区| 91国产视频在线| 国产91露脸中文字幕在线| 啊v视频在线一区二区三区| 在线免费观看羞羞视频一区二区| 欧美性生交xxxxxdddd| 69av成年福利视频| 精品久久久久久久大神国产| 国产欧美日韩中文字幕在线| 狠狠色狠狠色综合日日小说| 中文字幕久热精品在线视频| 高清日韩电视剧大全免费播放在线观看| 久久久国产精品x99av| 国产亚洲精品久久久久久| 国产99久久精品一区二区永久免费| 成年人精品视频| 国产91在线视频| 亚洲欧美在线第一页| 久久精品国产欧美激情| 4p变态网欧美系列| 日韩高清av一区二区三区| 欧美精品激情在线| 欧美激情区在线播放| 日本精品免费观看| 亚洲大尺度美女在线| 精品久久久久久久久久国产| 欧美猛交免费看| 91精品国产综合久久香蕉最新版| 狠狠躁夜夜躁人人爽天天天天97| 国产精品露脸自拍| 久久影院中文字幕| 欧美一级淫片aaaaaaa视频| 亚洲国产精品专区久久| 在线免费看av不卡| 久久伊人精品视频| 中日韩午夜理伦电影免费| 国产精品成人播放| 欧美日韩免费一区| 亚洲国产日韩欧美在线动漫| 日韩av资源在线播放| 国模精品视频一区二区| 亚洲精品视频在线观看视频| 91中文精品字幕在线视频| 国内精品中文字幕| 欧美日韩午夜剧场| 中文一区二区视频| 亚洲四色影视在线观看| 性色av一区二区三区在线观看| 亚洲在线免费看| 国产999精品| 国产日产欧美a一级在线| 91精品在线影院| 欧美专区在线视频| 欧美刺激性大交免费视频| 亚洲第一色中文字幕| 久久久欧美一区二区| 亚洲精品中文字幕女同| 中文字幕国产精品久久| 一本一本久久a久久精品牛牛影视| 在线视频欧美日韩精品| 色青青草原桃花久久综合| 欧美精品久久久久久久| 国产精品高清网站| 国产成人精品综合久久久| 欧美激情一区二区三区高清视频| 日本a级片电影一区二区| 中文字幕亚洲综合久久筱田步美| 成人免费黄色网| 亚洲一级一级97网| 欧美精品午夜视频| 91精品国产高清自在线| 欧美日韩午夜激情| 国产中文字幕91| 欧美精品激情blacked18| 国产在线观看精品| 亚洲欧美中文字幕| 成人免费观看49www在线观看| 色琪琪综合男人的天堂aⅴ视频| 91精品视频在线看| 国模精品系列视频| 国产在线拍揄自揄视频不卡99| xxxx欧美18另类的高清| 日本不卡视频在线播放| 亚洲福利精品在线| 欧美久久精品一级黑人c片| 国产精品av免费在线观看| 68精品久久久久久欧美| 成人网在线观看| 日韩亚洲成人av在线| 日本韩国欧美精品大片卡二| 欧洲s码亚洲m码精品一区| 国产精品久久不能| 夜夜嗨av色综合久久久综合网| 日韩电影在线观看永久视频免费网站| 亚洲精品自在久久| 成人黄色av播放免费| 国产精品综合网站| 久久久噜噜噜久噜久久| 亚洲网站在线看|