이 프로젝트는 최종 사용자가 가상의 웨스트 뱅크의 대출 승인 프로세스와 함께 작업 할 수있는 웹 인터페이스 포털을 제공합니다. 또한 테스트 목적으로 대출 승인 프로세스에서 사용하는 필요한 비즈니스 기능을 제공하는 웹 서비스도 포함됩니다.
포털은 Apache Tomcat, Eclipse Jetty, Jboss Wildfly와 같은 웹 애플리케이션 서버에서 응용 프로그램 ( *.war )으로 배포 될 수 있습니다. 그럼에도 불구하고, 우리는 명령 줄에서 직접 실행할 수 있습니다.
프로젝트 폴더로 이동하여 다음 명령을 진행하십시오.
mvn jetty:run그런 다음 포털 메인 페이지의 http : // localhost : 9999/포털로 웹 브라우저를 열십시오.
개발/테스트를위한 다른 페이지
기본 데이터베이스 확인 ( com.westbank.web.DevController 참조) : http : // localhost : 9999/portal/dev.html
실행중인 웹 서비스 목록 확인 : http : // localhost : 9999/Portal/Services
직원으로 로그인하려면 (관리자, 감독관, 서기 또는 중개인) 페이지로 이동하려면 http : // localhost : 9999/Portal/Staff/Login.html
참고 : 직원의 ID 및 비밀번호는 일시적으로 페이지 http : // localhost : 9999/portal/dev.html에 나열되어 있습니다.
mvn -DskipTests clean package Servlet 3.0+를 사용하여 XML-Less 구성으로 전환함에 따라 기본 웹 응용 프로그램 구성은 기존 WEB-INF/web.xml 대신 PortalWebApplicationInitializer 입니다.
PortalWebApplicationInitializer 먼저 루트 컨텍스트를로드하고 두 개의 구성 ServiceConfiguration PersistenceConfiguration 웹/비누 서비스 게시)DispatcherServlet 대한 AnnotationConfigWebApplicationContext 와 함께 하위 컨텍스트를 등록합니다.AnnotationConfigWebApplicationContext WebMvcConfiguration 에서 MVC 구성을 등록합니다DispatcherServlet 모두 *.html 및 /portal/* 제공합니다.PortalWebApplicationInitializer 또한 다른 서블릿 CXFServlet 로드하여 /services/* 웹/비누 서비스를 제공합니다. Spring MVC의 구성은 WebMvcConfiguration 에 있습니다.
WebMvcConfigurer 구현하고 @EnableWebMvc (스프링 XML에서 <mvc:annotation-driven /> 에 해당)로 주석이 달성됩니다.
기본 서블릿 처리를 가능하게합니다
Serving /resources/
view resolver가 /WEB-INF/view/ 및 .jsp 용 JSP/JSTL을 제공하도록 구성됩니다.
i18n/messages-XXX.properties 에서 여러 언어를 제공하도록 MessageSource 구성합니다
CSS, 이미지 및 JavassRipts와 같은 다른 리소스는 폴더 src/main/webapp/[css | images | js ] .
src/main/resources/i18n/messages.properties 성공 및 오류 알림과 같은 고객에게 표시된 정보에 대한 기능.
로그백 용 src/main/resources/logback.xml
데이터 조작 및 지속성은 PersistenceConfiguration 통해 구성된 스프링 JPA / Hibernate를 사용하여 수행됩니다.
@Configuration @EnableJpaRepositories , @EnableTransactionManagement , @ComponentScan 으로 주석이 달린다HikariDataSource 사용하여 javax.sql.DataSource 정의합니다LocalContainerEntityManagerFactoryBean 으로 entityManagerFactory 정의합니다JpaTransactionManager 정의합니다.load-user-and-role.sql 사용하여 일부 데이터를 설정하려면 DataSourceInitializer 정의합니다. 도메인 엔티티는 com.westbank.domain 의 JPA 컨벤션과 주석이 달성됩니다
데이터 리포지토리는 com.westbank.repository 에 있습니다. EntityManager 사용하여 기본 데이터/객체를 조작하기위한 재구성.
데이터 서비스 (일부 비즈니스 논리 포함)는 com.westbank.service 에 있습니다.
현재 사용되는 RDBMS는 최소한의 메모리 풋 프린트를 위해 메모리 H2입니다. 그럼에도 불구하고 다른 RDBM도 사용할 수 있습니다. 대신 다른 RDBMS를 사용하려면 다음 사항에 주목하십시오.
WESTBANKDB 만듭니다secret 에있는 사용자 westbank 만들고 해당 사용자를 데이터베이스에 할당하거나 선호하는 값을 사용하고 hibernate.properties 업데이트하십시오.pom.xml 의 새로운 RDBM에 필요한 Maven 의존성을 추가하십시오.mvn jetty:run 웹 애플리케이션이 작동하는지 확인하십시오.logback.xml 의 Verbosity를 조정하십시오. 이 프로젝트에는 Jax-WS / Apache CXF를 사용하는 일부 웹 서비스가 포함되어있어 대출 승인 프로세스에 필요한 비즈니스 기능을 제공합니다. 이 웹 서비스 인터페이스 ( *.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 플러그인은이 프로젝트를 Eclipse로 가져올 때마다 Apache CXF
cxf-codegen-plugin호출합니다. 따라서 플러그인은 현재 비활성화되어 있습니다. WSDL이 수정 될 때 마다이 플러그인을 활성화하고mvn generate-sources명령을 실행하여 Java 코드를 다시 생성하도록하십시오.
각 웹 서비스의 비즈니스 로직의 실제 구현은 com.westbank.ws.impl.XXXImpl 이라는 해당 Java 클래스에 있습니다. ' xxx '는 해당 웹 서비스의 이름입니다. 이러한 서비스를 변경하려면 WEB-INF/wsdl 폴더를 살펴보십시오. WSDL을 수정 한 후 mvn clean generate-sources 실행하여 Java 코드를 다시 생성하십시오.
Apache CXF 및 Spring을 사용하여 웹 서비스 게시를위한 구성은 루트 애플리케이션 컨텍스트에 의해로드 된 ServiceConfiguration 에 제공됩니다. ServiceBeans 에 서비스 Bean 정의를로드합니다.
웹 애플리케이션이 실행되면 http : // localhost : 9999/Portal/Services에서 웹 브라우저를 열면 실행중인 웹 서비스 목록을 확인하십시오.
추가 테스트 및 데모 목적으로 웹 서비스 논리에서 일부 특별 값이 하드 코딩됩니다.
com.westbank.ws.impl.BankPrivilegeImpl 참조).com.westbank.ws.impl.BankInformationImpl 참조)com.westbank.ws.impl.LoanRiskImpl 참조)com.westbank.ws.impl.TaskDispatchImpl 참조).com.westbank.ws.impl.CreditWorthinessImpl true 입니다 false