日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java ee maven_针对新手的Java EE7和Maven项目–第7部分

發布時間:2023/12/3 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java ee maven_针对新手的Java EE7和Maven项目–第7部分 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java ee maven

從前面的部分恢復

第1 部分 , 第2 部分 , 第3 部分 , 第4 部分 , 第5 部分 , 第6部分

在上一篇文章(第6章)中,我們發現了如何使用Arquillian和Wildfly 8.1進行JPA2域模型的單元測試。在上一篇文章中,我們做出了一個簡單的配置決定,我們使用了與Wildfly 8.1捆綁在一起的內部H2數據庫配置的數據源(稱為ExampleDS)。 但是真正的DBMS呢? 在這篇文章中,我們將擴展以前的工作,使用相同的原理,并

  • 在我們的本地主機上對正在運行的PostgreSQL進行測試
  • 使用Arquillian Offer的ShrinkWrap APi的一些非常好的功能。

先決條件

您需要在本地安裝PostgreSQL RBDMS ,我的示例基于在localhost上運行的服務器,數據庫名稱為papodb 。

添加更多依賴

最終,我們需要在樣本父代(pom)中添加更多依賴項。 其中一些與Arquillian有關,特別是ShrinkWrap Resolvers功能(稍后會詳細介紹)。

因此,我們需要將其添加到父pom中。 xml如下:

<shrinkwrap.bom-version>2.1.1</shrinkwrap.bom-version><!-- jbdc drivers --><postgreslq.version>9.1-901-1.jdbc4</postgreslq.version> ...<!-- shrinkwrap BOM--> <dependency><groupId>org.jboss.shrinkwrap.resolver</groupId><artifactId>shrinkwrap-resolver-bom</artifactId><version>${shrinkwrap.bom-version}</version><type>pom</type><scope>import</scope></dependency><!-- shrinkwrap dependency chain--><dependency><groupId>org.jboss.shrinkwrap.resolver</groupId><artifactId>shrinkwrap-resolver-depchain</artifactId><version>${shrinkwrap.bom-version}</version><type>pom</type></dependency><!-- arquillian itself--><dependency><groupId>org.jboss.arquillian</groupId><artifactId>arquillian-bom</artifactId><version>${arquillian-version}</version><scope>import</scope><type>pom</type></dependency><!-- the JDBC driver for postgresql --><dependency><groupId>postgresql</groupId><artifactId>postgresql</artifactId><version>${postgreslq.version}</version></dependency>

有關上述更改的一些注意事項:

  • 為了避免依賴項之間的任何潛在沖突,請確保在Arquillian BOM之上定義ShrinkWrap BOM

現在在sample-services(pom.xml)上 ,托管的項目是簡單測試,我們需要引用其中一些依賴項。

<dependency><groupId>org.jboss.shrinkwrap.resolver</groupId><artifactId>shrinkwrap-resolver-depchain</artifactId><scope>test</scope><type>pom</type></dependency><dependency><groupId>postgresql</groupId><artifactId>postgresql</artifactId></dependency>

重組我們的測試代碼

在前面的示例中,我們的測試很簡單,我們僅使用了特定的測試配置。 由于我們將測試應用程序打包為jar,因此生成了單個test-persistence.xml文件,而沒有web.xml文件。 現在,我們將測試存檔升級為戰爭。 當涉及捆綁和部署企業應用程序時,JavaEE7中的戰爭包裝已成為第一手公民。 與前面的示例的主要區別在于,我們希望保留以前的設置,這意味著在wildfly上使用內部H2進行測試,以及對真實的RDBMS服務器進行新的設置測試。 因此,我們需要維護2套配置文件,并利用Maven配置文件功能,根據我們的模式對它們進行相應的打包。 如果您不熟悉Maven,請確保查看配置文件的概念。

為每個配置文件添加單獨的配置

因此,我們的測試資源(請注意這些資源位于src / test / resources下)如下所示。

兩種情況都有差異。 h2的test-persistence.xml指向ExampleDS數據源,其中postgre上的那個指向我們在web.xml中定義的新數據源! 請從下面的git鏈接中查看實際代碼。

這就是我們在web.xml中定義數據源的方式

以上注意事項

  • JNDI名稱中的標準命名java:jboss / datasources / datasourceName
  • 一旦讀取了web.xml文件的內容,應用服務器就會自動部署和配置新的數據源。

這是我們的persistence.xml


以上注意事項

  • 確保2個JNDI條目在數據源定義和persistence.xml中都相同
  • 當然,用于postGresql的Hibernate方言是不同的
  • 高亮顯示的行是Wildfly 8.1所必需的特殊設置,如果您要一口氣部署它,則需要設置數據源,jdbc驅動程序和代碼。 它提示應用程序服務器首先初始化和配置數據源,然后初始化EntityManager。 如果您已經部署/配置了數據源,則不需要此設置。

在我們的pom中定義配置文件

在樣本服務pom.xml中,添加以下部分。 這是我們的配置文件定義。

<profiles><profile><id>h2</id><build><testResources<testResource><directory>/resources-h2</directory><includes><include>**/*</include></includes></testResource></testResources></build></profile><profile><id>postgre</id><build><testResources><testResource><directory>/resources-postgre</directory><includes><include>**/*</include></includes></testResource></testResources></build></profile></profiles>

根據激活的配置文件,我們指示Maven在特定的子文件夾下包括并使用xml文件。 因此,如果我們應用以下命令:

mvn clean test -Pdb2

然后,maven將在resource-h2文件夾下包含persistence.xml和web.xml,我們的測試將使用內部的H2 DB。 如果我們發出:

mvn clean test -Ppostgre

然后,我們的測試Web存檔將與本地Postgresql服務器專用的數據源定義一起打包。

編寫一個簡單的測試

最終,我們新的JUnit測試與之前的測試沒有太大不同。 這是指示一些關鍵點的屏幕截圖。

?

上面代碼的一些注釋:

  • Junit測試和基本注釋與上一篇文章相同。
  • init()方法還是相同的,我們只是創建并保留一個新的SimpleUser實體
  • 第一個主要區別是ShrinkWrap Api的使用,它利用了pom中的測試依賴項,并且我們可以將JBDC驅動程序定位為jar。 找到ShrinkWrap之后,請確保將其與其他資源和代碼一起打包在我們的test.war中。
  • 盡管僅打包jdbc驅動程序還不夠,為了使其正常工作,我們需要在服務器中存在(配置)數據源。 我們希望這是自動的,這意味著我們不想在測試Wildfly服務器上進行任何預配置。 我們利用此功能在web.xml上定義數據源。 (在代碼中將其打開)。

  • 一旦掃描了web.xml,應用程序服務器就會選擇該條目,并將在java:jboss / datasources / testpostgre名稱下配置一個數據源。
  • 因此,我們將驅動程序,數據源定義捆綁在一起,我們有一個persistence.xml指向正確的數據源。 我們準備測試
  • 我們的測試方法與以前的測試方法相似。

我們為H2檔案修改了一些資源,以便每次都打包相同的戰爭結構。 這意味著,如果我們使用-Ph2配置文件運行測試,則包含的web.xml為空,因為實際上我們不需要在此定義數據源,因為該數據源已由Wildfly部署。 但是persistence.xml是不同的,因為在一種情況下,定義的方言特定于H2,而在另一種情況下,所定義的方言特定于Postgre。

您可以遵循相同的原理并添加一個新的資源子文件夾,為另一個RDBMS(例如MySQL)配置數據源,添加適當的代碼以獲取驅動程序并將其打包。

  • 您可以在此bitbucket repo-tag上獲得此帖子的代碼 。

資源資源

  • Shrinkwrap解析器API頁面 (此強大API的許多漂亮示例)
  • 定義Wildfly 8.1的數據源

翻譯自: https://www.javacodegeeks.com/2014/07/java-ee7-and-maven-project-for-newbies-part-7.html

java ee maven

總結

以上是生活随笔為你收集整理的java ee maven_针对新手的Java EE7和Maven项目–第7部分的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久99精品久久久水蜜桃 | 日韩在线播放中文字幕 | 落日余晖图片 | 性欧美巨大乳 | 午夜时刻免费入口 | 久久亚洲高清 | 欧美一区二区三区影视 | 视频二区中文字幕 | 久久作爱视频 | 亚洲天堂一 | 少妇久久久久久久久久 | 免费视频99 | 懂色av蜜臀av粉嫩av喷吹 | 国产jk精品白丝av在线观看 | 51精产品一区一区三区 | 欧美一区二区三区免费 | 日本高清久久 | 最近中文字幕免费mv视频7 | 69堂精品 | 三级网站在线 | 免费裸体美女网站 | 看黄色的网址 | 欧美xxxⅹ性欧美大片 | 欧美色图在线播放 | jzjzjz欧美丰满少妇 | 日本综合色 | 精品在线一区二区三区 | 欧美视频一区二区三区在线观看 | 色综合色综合色综合 | 这里只有久久精品 | 131美女爱做视频 | 久久久久久www | 黄色成人一级片 | 亚洲成人网在线观看 | 亚洲第一综合网 | 久久这里只有精品23 | 国产精品久久久久久69 | 裸体一区二区 | 日韩欧美一区二区三区视频 | 免费成人美女在线观看. | 国产成人中文字幕 | 国产丝袜视频 | 雪白的扔子视频大全在线观看 | 国产宾馆自拍 | 欧美野外猛男的大粗鳮 | 国产精品美女主播 | 国产一级片 | 欧美视频在线不卡 | 天天摸天天做天天爽水多 | 国产做受91 | 国产视频高清 | 国产午夜在线一区二区三区 | 日本少妇网站 | 国产一级片中文字幕 | 在线观看成人黄色 | 少妇精品久久久久www | 国产日韩一区二区 | 三浦惠理子aⅴ一二三区 | 男同互操gay射视频在线看 | 伊人网av在线 | 久在线视频 | 亚洲一区影视 | 亚洲风情亚aⅴ在线发布 | 一本色道综合久久欧美日韩精品 | 国产精品欧美激情在线 | 一个综合色 | 在线视频你懂得 | 婷婷四房综合激情五月 | av小说在线观看 | 国产精品久久久久久久久久久久久久久 | 光棍影院av | 日韩一区二区免费播放 | 久久午夜精品人妻一区二区三区 | 爱爱视频在线免费观看 | 国产福利91精品一区二区三区 | 国产系列在线观看 | 国内精品久久久 | 亚洲精品免费播放 | 日本性网站| 又大又粗欧美黑人aaaaa片 | 91精品国产一区二区 | 亚洲高清在线观看视频 | 中文字幕精品视频在线 | 伊人久久综合影院 | 亚洲精品色午夜无码专区日韩 | 亚洲AV无码成人精品区先锋 | 天堂av中文在线 | 好吊色这里只有精品 | 懂色av中文字幕 | 男女一级片 | 免费在线看污 | 黄色污污网站在线观看 | 亚洲欧美国产精品专区久久 | 老女人毛片 | 男女裸体影院高潮 | 天天想你免费观看完整版高清电影 | av网站网址 | 国产网红无码精品视频 | 毛片在线不卡 |