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

歡迎訪問 生活随笔!

生活随笔

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

java

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

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

從前面的部分恢復

第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中定義配置文件

在sample-services 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指向正確的datasourc。 我們準備測試
  • 我們的測試方法與之前的測試方法相似。

我們為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 EE7和Maven项目–第7部分的全部內容,希望文章能夠幫你解決所遇到的問題。

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