Medium sample overview

Architecture

The domain model is implemented with Plain Old Java Objects (POJOs) enhanced with Hibernate Annotations in order to persist domain objects. The service layer and DAO layer are enhanced with the aspect layer. We engrid the aspect layer from the service and dao layer because aspects are cross cutting concerns which can be used over different layers. In order to use the advice layer we define proxies for our DAOs and Service objects by using Spring. The interface between service and presentation layer is the controller layer. This is an important point, because a controller is not a GUI component, such as a listener. The main task of a controller is to prepare data for the service layer, call it and doing further application flow. The presentation layer and controller layer are based on JSF (Java Server Faces). We introduce a JsfBeanManager, which provides methods to get and set managed beans in the JSF context. All web pages are implemented as Java Server Pages (JSPs) using JSF tags.

Used technology

  • Lifecycle Management with Maven
  • Spring-beans to annotate domain objects for persiting
  • Object mapping tool iBATIS for persistence
  • HSQLDB or any relational database supported by iBATIS
  • Persistence Layer utilizing Data Access Object Pattern in combination with JDBC Templates of the Spring framework and Dependency Injection
  • Unittesting with JUnit
  • Logging via Log4J Framework
  • AOP (Aspect Oriented Programing) by using Spring and Proxies
  • Apache Wicket
  • Webserver can be run with Jetty, by using Maven plugin
  • Full inline documentation (Javadoc)