该项目为最终用户提供了一个网络接口门户,以便与虚拟的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 )