Ce projet fournit un portail d'interface Web aux utilisateurs finaux pour travailler avec le processus d'approbation des prêts de la fictive Westbank. En outre, à des fins de test, il comprend également les services Web qui fournissent les fonctions commerciales nécessaires utilisées par le processus d'approbation du prêt.
Le portail peut être déployé sous forme d'application ( *.war ) dans un serveur d'applications Web tels qu'Apache Tomcat, Eclipse Jetty, JBoss Wildfly As, etc. Néanmoins, nous pouvons dire directement l'exécuter sur la ligne de commande.
Accédez au dossier du projet et continuez avec la commande suivante.
mvn jetty:runOuvrez ensuite un navigateur Web à http: // localhost: 9999 / portail pour la page principale du portail.
Quelques autres pages pour le développement / tests
Vérification de la base de données sous-jacente (voir com.westbank.web.DevController ): http: // localhost: 9999 / portal / dev.html
Vérification de la liste des services Web en cours d'exécution: http: // localhost: 9999 / portail / services
Pour vous connecter en tant que personnel (directeur, superviseur, greffier ou courtier), accédez à la page: http: // localhost: 9999 / portail / personnel / login.html
Remarque: l'identification et le mot de passe du personnel sont temporairement répertoriés dans la page http: // localhost: 9999 / portail / dev.html
mvn -DskipTests clean package En passant à des configurations sans XML avec Servlet 3.0+, la configuration principale de l'application Web est PortalWebApplicationInitializer au lieu du WEB-INF/web.xml traditionnel.
PortalWebApplicationInitializer charge d'abord le contexte racine et enregistre deux configurations PersistenceConfiguration (pour l'accès aux données) et ServiceConfiguration (pour la publication des services Web / SOAP)AnnotationConfigWebApplicationContext pour le Spring DispatcherServletAnnotationConfigWebApplicationContext enregistre la configuration MVC dans WebMvcConfigurationDispatcherServlet servira tous *.html et /portal/*PortalWebApplicationInitializer également un autre servlet CXFServlet pour servir les services Web / SOAP à /services/* La configuration de Spring MVC est dans WebMvcConfiguration :
Il implémente WebMvcConfigurer et est annoté avec @EnableWebMvc (équivalent à <mvc:annotation-driven /> in printemps xml)
Il permet la manipulation des servlets par défaut
Il ajoute des Gees de ressources pour servir /resources/
Il configure des résolveurs Affichage pour servir JSP / JSTL à /WEB-INF/view/ et pour .jsp
Il configure MessageSource pour servir plusieurs langues sur i18n/messages-XXX.properties
D'autres ressources comme CSSS, Images et Javassripts sont dans les dossiers src/main/webapp/[css | images | js ] .
src/main/resources/i18n/messages.properties pour les informations affichées aux clients tels que les notifications de succès et d'erreur.
src/main/resources/logback.xml pour la connexion
La manipulation et la persistance des données sont effectuées à l'aide de Spring JPA / Hibernate configurée via PersistenceConfiguration .
@Configuration @EnableJpaRepositories , @EnableTransactionManagement , @ComponentScanjavax.sql.DataSource avec l'implémentation sous-jacente HikariDataSource de HikaricpentityManagerFactory avec LocalContainerEntityManagerFactoryBeanJpaTransactionManagerDataSourceInitializer pour configurer certaines données à l'aide du script load-user-and-role.sql Les entités de domaine sont annotées avec des conventions JPA dans com.westbank.domain
Les référentiels de données sont dans com.westbank.repository pour manipuler les données / objets sous-jacents à l'aide EntityManager
Les services de données (y compris une logique métier) sont dans com.westbank.service travaillant au-dessus des référentiels
Le RDBM actuellement utilisé est en mémoire H2 pour une empreinte de mémoire minimale. Néanmoins, tout autre SGBDR peut également être utilisé. Afin d'utiliser à la place d'autres SGBDR, veuillez noter les points suivants:
WESTBANKDBwestbank avec secret de mot de passe et affectez cet utilisateur à la base de données ou utilisez vos valeurs préférées et mettez à jour hibernate.properties en conséquencepom.xml .mvn jetty:run pour vérifier si l'application Web fonctionne.logback.xml pour le débogage. Ce projet comprend également certains services Web utilisant JAX-WS / Apache CXF pour fournir les fonctions commerciales nécessaires au processus d'approbation du prêt. Ces interfaces de service Web ( *.wsdl ) sont dans le dossier 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
Le plugin Maven cxf-codegen-plugin d'Apache CXF est utilisé pour générer du code Java à partir des services susmentionnés (c'est-à -dire le développement de services contractuels ). Les sources Java générées sont sous le package de base com.westbank.ws .
Le plugin M2ECLIPSE qui prend en charge Maven dans Eclipse invoquera l'Apache CXF
cxf-codegen-pluginchaque fois que vous importez ce projet dans Eclipse, les éléments générés existants seront inutilement écrasés. Ainsi, le plugin est actuellement désactivé. Chaque fois qu'un WSDL est modifié, veuillez activer ce plugin et exécuter la commandemvn generate-sourcespour générer le code Java.
L'implémentation réelle de la logique métier de chaque service Web se trouve dans la classe Java correspondante nommée com.westbank.ws.impl.XXXImpl dans laquelle « xxx » est le nom de ce service Web. Afin de modifier ces services, consultez le dossier WEB-INF/wsdl . Après avoir modifié les WSDL, il suffit d'exécuter mvn clean generate-sources pour générer le code Java.
La configuration de la publication des services Web à l'aide d'Apache CXF et Spring est fournie dans ServiceConfiguration chargée par le contexte de l'application racine. Il charge à son tour les définitions de bean de service dans ServiceBeans .
Pendant que l'application Web s'exécute, ouvrez un navigateur Web sur http: // localhost: 9999 / portail / services pour voir une liste des services Web en cours d'exécution.
À des fins de test et de démonstration supplémentaires, certaines valeurs spéciales sont codées en dur dans les logiques des services Web:
com.westbank.ws.impl.BankPrivilegeImpl )com.westbank.ws.impl.BankInformationImpl )com.westbank.ws.impl.LoanRiskImpl )com.westbank.ws.impl.TaskDispatchImpl )true , sinon, false (voir com.westbank.ws.impl.CreditWorthinessImpl )