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

歡迎訪問 生活随笔!

生活随笔

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

java

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

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

java ee maven

從前面的部分恢復

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

在上一篇文章(第5部分)中,我們發(fā)現了如何使用Arquillian(我們的EJB服務)進行單元測試,并將其部署在Wildfly8.1應用服務器的“真實”實例中。 擴展前面的示例,我們將添加更多配置和代碼,以便我們可以添加涉及JPA2實體的單元測試。 從數據庫創(chuàng)建,保存和檢索信息是任何JavaEE應用程序的一項非常基本的任務。 我們需要確保我們的域模型和在其之上編碼的邏輯經過了盡可能多的測試。 我將使用“ 最簡單的 ”配置形式和相關庫。 由于我們已經針對Wildfly 8.1進行了測試,因此我們將使用與服務器捆綁在一起的內部H2內存數據庫以及相關的ExampleDS數據源 。

請注意 ,這僅是為了進行測試和演示,在現實生活中,您將需要在基于大量生產的RDBMS上進行測試,不同之處在于:

  • 在您的數據庫服務器(例如Oracle,MySQL,DB2…)中創(chuàng)建測試數據庫模式
  • 將適當的數據源配置添加到應用程序服務器,以便它連接到上述數據庫服務器。

我們已經設置了Arquillian,并且已經在利用獨立的Wildfly 8.1應用程序服務器的功能。 在上一篇文章(第5部分)中,我們只是一個簡單的Stateless EJB,它沒有在數據庫上檢索或保存信息。 在樣本域模塊上,我們已經定義了一個簡單的JPA2實體Bean。 我們想測試一些基本的東西,例如將實體保存在數據庫中,檢索實體等。即使對于如今,對于許多項目來說,創(chuàng)建無狀態(tài)會話bean也是一種普遍的模式,實際上為每個實體實現此代碼。 您可能聽說過它們是“ DAO”類。 在我們的情況下,沒有DAO實施,但將應用相同的原則。

定義一個test-persistence.xml

由于我們已經在sample-domain模塊(jar)下定義了一個標準的persistence.xml (實際上是在配置我們的實體管理器),因此我們需要進行類似的配置。 最終,一個非常相似的持久化xml,但這一次將被放置在/ src / test / resources文件夾中,因為它將為我們(在測試期間從Arquillian / Wildfly測試組合。

看起來是這樣的:

<?xml version="1.0" encoding="UTF-8"?><persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/persistencehttp://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"><persistence-unit name="test"><jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source><properties><property name="hibernate.hbm2ddl.auto" value="create-drop"/><property name="hibernate.show_sql" value="true"/><property name="hibernate.format_sql" value="true"/><property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/></properties></persistence-unit></persistence>

以上文件的一些注意事項:

  • 我們正在定義在Wildly 8.1上預先配置的ExampleDatasource
  • WildFly 8.1與Hibernate 4.x捆綁在一起,因此我們正在使用Hibernate配置的“安全”屬性。
  • 我們使用' create-drop '策略,這意味著每次運行測試時,hibernate都會將表拖放到基礎數據庫中并重新創(chuàng)建它們。 這將在我們正在嘗試并且不斷更改領域模型的情況下為我們提供幫助。
  • 的胚胎。 Wildly提供的數據庫是H2 ,因此我們正在配置Hibernate以使用此“ 方言 ”。

創(chuàng)建Arquillian測試

這是我們測試的樣子(您可以在文章末尾的git鏈接上查看源代碼):

以上代碼的一些注意事項:

要點0 :這是每個基于Arquillian的測試中最重要的部分之一。 這是我們在內存中創(chuàng)建“戰(zhàn)爭”的地方,可部署的將包含受測類和支持框架所需的任何其他資源。 所有的連接都使用一個名為ShrinkWrap的基于Arquillian的框架完成 。 在我們的示例中,“ createDeployment ”方法將打包我們的單個JPA實體“ User”和一個persistence.xml文件,該文件實際上是我們測試資源下的test-persistence.xml,并配置了使用默認設置的實體管理器瘋狂的數據源。

要點1:這是一個特殊的批注,在更復雜的測試中非常方便,通過使用此批注,我們實際上是在默認情況下將JTA(事務性)支持注入到我們的測試方法中,在這種特殊測試中,使用量不大。 記下“回滾”設置。 它表明該測試方法在事務中最后執(zhí)行的所有插入/刪除/更新都將被回滾,因此我們不會留下任何垃圾。

第2點:我們需要使用適當的RunWith注釋對測試進行注釋,這表明我們希望啟用Junit / Arquillian機制。

第3點:我們正在注入一個實體管理器,就像在常規(guī)EJB / resource中那樣。 持久性管理器的名稱必須與test-persistence.xml中定義的名稱保持一致,因此請當心。

第4點: @Before注釋表示init()方法將在每次測試之前運行。 這是初始化任何數據并準備我們的測試域環(huán)境的好地方。

第5點:您可以在init()方法中看到,我們正在持久保存一個User實體,這與我們在產品/實際代碼中所做的類似!

第6點:我們正在嘗試查詢對象的實際測試方法,此后繼續(xù)存在。

最后

實際上,我們已經配置并準備了項目結構和配置以便使用Arquillian,這一事實實際上是最重要的。 一旦準備好了基本塊,那么就需要編寫更多的測試并試驗代碼。 右鍵單擊測試,如您所見,我們獲得了成功的綠燈,這??是一個明確的通過。 測試愉快!

  • 您可以在我的bitbucket存儲庫中的post6標簽下找到此帖子的完整代碼。

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

java ee maven

總結

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

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