該項目為最終用戶提供了一個網絡接口門戶,以便與虛擬的Westbank的貸款批准過程合作。此外,為了進行測試目的,它還包括提供貸款批准流程使用必要的業務功能的Web服務。
該門戶可以在Web應用程序服務器(例如Apache Tomcat,Eclipse Jetty,Jboss Wildfly AS等)中部署為應用程序( *.war )。但是,我們可以直接在命令行中運行它。
轉到項目文件夾,然後繼續執行以下命令。
mvn jetty:run然後打開Web瀏覽器至http:// localhost:9999/門戶網站的門戶網站。
其他一些用於開發/測試的頁面
驗證基礎數據庫(請參閱com.westbank.web.DevController ):http:// localhost:9999/portal/dev.html
檢查運行Web服務的列表:http:// localhost:9999/portal/services
要登錄員工(經理,主管,文員或經紀人),請轉到頁面:http:// localhost:9999/portal/staff/staff/login.html
注意:員工的ID和密碼在頁面http:// localhost:9999/portal/dev.html中臨時列出
mvn -DskipTests clean package由於使用Servlet 3.0+切換到無XML的配置,因此主要的Web應用程序配置是PortalWebApplicationInitializer而不是傳統的WEB-INF/web.xml 。
PortalWebApplicationInitializer首先加載根上下文,並註冊兩種配置PersistenceConfiguration (用於數據訪問)和ServiceConfiguration (用於發布Web/SOAP服務)AnnotationConfigWebApplicationContext進行春季DispatcherServlet登錄子上下文AnnotationConfigWebApplicationContext登記WebMvcConfiguration中的MVC配置DispatcherServlet將為所有*.html和/portal/*服務PortalWebApplicationInitializer還將加載另一個Servlet CXFServlet ,以服務於/services/* Web/SOAP服務Spring MVC的配置在WebMvcConfiguration中:
它實現WebMvcConfigurer ,並用@EnableWebMvc註釋(相當於<mvc:annotation-driven /> )
它可以啟用默認的servlet處理
它添加了資源手服務器來服務/resources/
它配置了視圖解析器以服務於/WEB-INF/view/和.jsp服務的JSP/JSTL
它配置了MessageSource ,以在i18n/messages-XXX.properties上使用多種語言
其他資源(例如CSS,圖像和Javassripts)在文件夾中src/main/webapp/[css | images | js ] 。
src/main/resources/i18n/messages.properties用於向客戶顯示的信息,例如成功和錯誤通知。
src/main/resources/logback.xml用於logback
數據操作和持久性是使用通過PersistenceConfiguration配置的Spring JPA / Hibernate完成的。
@Configuration @EnableJpaRepositories , @EnableTransactionManagement , @ComponentScan註釋javax.sql.DataSource使用Hikaricp的基礎實現HikariDataSourceLocalContainerEntityManagerFactoryBean定義entityManagerFactoryJpaTransactionManager定義JPA TransActionManager / Java交易API(JTA)DataSourceInitializer來使用腳本load-user-and-role.sql設置一些數據域實體在com.westbank.domain中帶有JPA慣例註釋
數據存儲庫位於com.westbank.repository ,用於使用EntityManager操縱基礎數據/對象
數據服務(包括某些業務邏輯)在com.westbank.service中工作。
當前使用的RDBMS是內存H2,用於最少的內存足跡。但是,也可以使用其他任何RDBM。為了使用其他RDBMS,請注意以下幾點:
WESTBANKDBsecret創建一個用戶westbank ,並將該用戶分配到數據庫或使用您的首選值並更新hibernate.properties 。pom.xml中新的RDBMS的必要Maven依賴關係。mvn jetty:run以檢查Web應用程序是否有效。logback.xml中的詳細性進行調試。該項目還包括一些使用JAX-WS / Apache CXF的Web服務,以提供貸款批准流程所需的業務功能。這些Web服務接口( *.wsdl )在文件夾WEB-INF/wsdl中。
|
+-- BankInformation.wsdl
+-- BankPrivilege.wsdl
+-- CreditWorthiness.wsdl
+-- LoanApprovalClosing.wsdl
+-- LoanFile.wsdl
+-- LoanContract.wsdl
+-- LoanContractSigning.wsdl
+-- LoanRisk.wsdl
+-- LoanSettlement.wsdl
+-- TaskDispatch.wsdl
|
+-- CallbackLoanContract.wsdl
+-- CallbackLoanApproval.wsdl
Apache CXF的cxf-codegen-plugin Maven插件用於從上述服務(即合同優先服務開發)生成Java代碼。生成的Java源位於基本軟件包com.westbank.ws下。
支持Eclipse的Maven的M2Eclipse插件將調用Apache CXF
cxf-codegen-plugin每當您將該項目導入Eclipse中時,現有生成的物品都會不必要地覆蓋。因此,該插件當前被禁用。每當修改任何WSDL時,請啟用此插件並執行命令mvn generate-sources以重新啟動Java代碼。
每個Web服務的業務邏輯的實際實現位於名為com.westbank.ws.impl.XXXImpl的相應Java類中,其中' xxx '是該Web服務的名稱。為了更改這些服務,請查看文件夾WEB-INF/wsdl 。修改WSDL之後,只需運行mvn clean generate-sources即可重新生成Java代碼。
使用Apache CXF和Spring發布Web服務的配置是由根應用程序上下文加載的ServiceConfiguration 。反過來,它在ServiceBeans中加載了Service Bean定義。
當Web應用程序正在運行時,請在http:// localhost:9999/portal/services上打開Web瀏覽器,以查看運行的Web服務列表。
為了進一步的測試和演示目的,Web服務邏輯中有一些特殊值對:
com.westbank.ws.impl.BankPrivilegeImpl )com.westbank.ws.impl.BankInformationImpl )com.westbank.ws.impl.LoanRiskImpl )com.westbank.ws.impl.TaskDispatchImpl )true ,否則, false (請參閱com.westbank.ws.impl.CreditWorthinessImpl )