This is a minimal application skeleton that illustrates how an internet banking application can be structured around nfsx foundation components using built on top of Spring.io platform and Netflix OSS libraries.
Domain data model and API definition that servers as contract for both consumer and implementor of micro services. This module does not contain any implementation details.
Highlights:
- Jackson @JSON annotation in models in controller JSON serialization and deserialization behaviors
- JSR303 based Java bean validation annotation for data type validation.
Micro service that provide API to access customer profile data.
Highlights:
- application configuration is dynamically downloaded from cloud config server upon start.
- service automatically registers with Eureka server up on start.
- modelmapper based intelligent Java object mapping between JPA physical data model and domain model.
- spring-data-jpa based DAO repository.
- spring-mvc @RestController that implements the REST API secured by spring-security, integrated OAuth2 authorization server.
- custom health indicator endpoint that display git repository info, available at http://server:port/health
- Rest Assured fluent API for testing REST APIs.
Micro service that provide API to access credit card information. It uses the same components as profile-service, plus
- CXF based web service client to access external SOAP server
- Use simulator to mock SOAP reply during unit tests.
Main application UI server.
Highlights:
- application configuration is dynamically downloaded from cloud config server upon start.
- SSO integration with Oauth2 authentication server
- Use spring-session to support clustering. currently using Redis as external store.
- Annotation driven automatic REST server discovery and consumption based on Feign
- custom health indicator endpoint that display git repository info, available at http://server:port/health
main web application. contains UI components for end-users.
- start authentication server by
cd nfsx/infra/auth-server; mvn
- start cloud config and Eureka server by
cd nfsx/infra/cloud-server; mvn
- start profile service by
cd nfsx/ibank/apps/profile-server; mvn spring-boot:run
- start Redis server
- start main UI application by
cd nfsx/ibank/apps/webapp; mvn spring-boot:run
- point your browser to http://127.0.0.1:8080/app
After server initializes open the browser and navigator to http://localhost:8000. Login as user/password
and you should see a greeting message on top of the screen.
see infra support for details.
- Eureka dashboard is available at http://localhost:8761
- Hystrix dashboard for webapp is available at http://localhost:8761/hystrix
Use this link to view circuit break statuses for web app module.