Proyek ini menyediakan portal antarmuka web untuk pengguna akhir untuk bekerja dengan proses persetujuan pinjaman dari Westbank fiktif. Selain itu, untuk tujuan pengujian itu juga mencakup layanan web yang menyediakan fungsi bisnis yang diperlukan yang digunakan oleh proses persetujuan pinjaman.
Portal dapat digunakan sebagai aplikasi ( *.war ) di server aplikasi web seperti Apache Tomcat, Eclipse Jetty, JBoss Wildfly As, dll. Namun demikian, kita dapat langsung menjalankannya di baris perintah.
Buka folder proyek dan lanjutkan dengan perintah berikut.
mvn jetty:runKemudian buka browser web ke http: // localhost: 9999/portal untuk halaman utama portal.
Beberapa halaman lain untuk pengembangan/pengujian
Memverifikasi database yang mendasarinya (lihat com.westbank.web.DevController ): http: // localhost: 9999/portal/dev.html
Memeriksa daftar Layanan Web yang Menjalankan: http: // localhost: 9999/portal/layanan
Untuk login sebagai staf (manajer, pengawas, juru tulis, atau broker), buka halaman: http: // localhost: 9999/portal/staf/login.html
Catatan: ID dan Kata Sandi untuk Staf untuk sementara tercantum di halaman http: // localhost: 9999/portal/dev.html
mvn -DskipTests clean package Saat beralih ke konfigurasi XML-Less dengan Servlet 3.0+, konfigurasi aplikasi web utama adalah PortalWebApplicationInitializer alih-alih WEB-INF/web.xml tradisional.
PortalWebApplicationInitializer Pertama memuat konteks root dan mendaftarkan dua konfigurasi konfigurasi PersistenceConfiguration (untuk akses data) dan ServiceConfiguration (untuk menerbitkan layanan web/sabun)AnnotationConfigWebApplicationContext untuk Spring DispatcherServletAnnotationConfigWebApplicationContext Mendaftarkan Konfigurasi MVC di WebMvcConfigurationDispatcherServlet akan melayani semua *.html dan /portal/*PortalWebApplicationInitializer juga akan memuat servlet CXFServlet lain untuk melayani layanan web/sabun di /services/* Konfigurasi untuk Spring MVC ada di WebMvcConfiguration :
Ini mengimplementasikan WebMvcConfigurer dan dijelaskan dengan @EnableWebMvc (setara dengan <mvc:annotation-driven /> di musim semi xml)
Ini memungkinkan penanganan servlet default
Itu menambahkan sumber daya untuk melayani /resources/
Ini mengkonfigurasi view resolvers untuk melayani JSP/JSTL AT /WEB-INF/view/ dan untuk .jsp
Ini mengonfigurasi MessageSource untuk melayani beberapa bahasa di i18n/messages-XXX.properties
Sumber daya lain seperti CSS, gambar, dan javassripts ada di folder src/main/webapp/[css | images | js ] .
src/main/resources/i18n/messages.properties untuk informasi yang ditampilkan kepada pelanggan seperti pemberitahuan keberhasilan dan kesalahan.
src/main/resources/logback.xml untuk logback
Manipulasi data dan persistensi dilakukan dengan menggunakan JPA / Hibernate pegas yang dikonfigurasi melalui PersistenceConfiguration .
@Configuration @EnableJpaRepositories , @EnableTransactionManagement , @ComponentScanjavax.sql.DataSource dengan implementasi yang mendasar HikariDataSource of HikariCpentityManagerFactory dengan LocalContainerEntityManagerFactoryBeanJpaTransactionManagerDataSourceInitializer untuk mengatur beberapa data menggunakan skrip load-user-and-role.sql Entitas domain dijelaskan dengan konvensi JPA di com.westbank.domain
Repositori data ada di com.westbank.repository untuk memanipulasi data/objek yang mendasari menggunakan EntityManager
Layanan Data (termasuk beberapa logika bisnis) berada di com.westbank.service yang bekerja di atas repositori
RDBMS yang saat ini digunakan adalah H2 dalam memori untuk jejak memori minimal. Namun demikian, RDBM lain dapat digunakan juga. Untuk menggunakan RDBMS lain sebagai gantinya, harap perhatikan poin -poin berikut:
WESTBANKDBwestbank dengan secret kata sandi dan tetapkan pengguna itu ke database atau gunakan nilai pilihan Anda dan perbarui hibernate.properties sesuai dengan itupom.xml .mvn jetty:run untuk memeriksa apakah aplikasi web berfungsi.logback.xml untuk debugging. Proyek ini juga mencakup beberapa layanan web menggunakan JAX-WS / Apache CXF untuk menyediakan fungsi bisnis yang dibutuhkan oleh proses persetujuan pinjaman. Antarmuka layanan web ini ( *.wsdl ) ada di folder 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
cxf-codegen-plugin CXF digunakan untuk menghasilkan kode Java dari layanan yang disebutkan di atas (yaitu pengembangan layanan pertama kontrak ). Sumber Java yang dihasilkan berada di bawah paket dasar com.westbank.ws .
Plugin M2Eclipse yang mendukung Maven di Eclipse akan memohon Apache CXF
cxf-codegen-pluginsetiap kali Anda mengimpor proyek ini ke dalam gerhana, barang-barang yang dihasilkan yang ada akan ditimpa secara tidak perlu. Dengan demikian, plugin saat ini dinonaktifkan. Setiap kali WSDL dimodifikasi, harap aktifkan plugin ini dan jalankan perintahmvn generate-sourcesuntuk menghasilkan kembali kode Java.
Implementasi aktual dari logika bisnis dari setiap layanan web berada di kelas Java yang sesuai bernama com.westbank.ws.impl.XXXImpl di mana ' xxx ' adalah nama layanan web itu. Untuk mengubah layanan ini, lihatlah folder WEB-INF/wsdl . Setelah memodifikasi WSDLS, cukup jalankan mvn clean generate-sources untuk menghasilkan kembali kode Java.
Konfigurasi untuk menerbitkan layanan web menggunakan Apache CXF dan Spring disediakan dalam ServiceConfiguration yang dimuat oleh konteks aplikasi root. Pada gilirannya memuat definisi kacang layanan di ServiceBeans .
Saat aplikasi web berjalan, buka browser web di http: // localhost: 9999/portal/layanan untuk melihat daftar layanan web yang berjalan.
Untuk tujuan pengujian dan demonstrasi lebih lanjut, beberapa nilai khusus dikodekan dalam logika layanan web:
com.westbank.ws.impl.BankPrivilegeImpl )com.westbank.ws.impl.BankInformationImpl )com.westbank.ws.impl.LoanRiskImpl )com.westbank.ws.impl.TaskDispatchImpl )true , jika tidak, false (lihat com.westbank.ws.impl.CreditWorthinessImpl )