Duration: 4 Days
Prerequisites: Beginning to advanced knowledge of Java, HTML, and relational database technology.
This course will present an application architecture that supports the short time boxed feature development of Java EE applications prescribed by popular agile/extreme development approaches.
Students will be presented with architecture and construction idioms and then apply them to a case study application through a series of lectures and hands on exercises. The Spring MVC and IOC open source frameworks will be used for presentation and model partitions of the application. A generic data access design pattern will be introduced that allows the engagement of any object relational mapping framework. Students will apply both Hibernate and IBATIS object relational mapping frameworks, since both excel in solving different O/R mapping challenges.
Java 5 annotations, aspect oriented programming (AOP) and Mock objects will also be used to facilitate agility.
When complete, student will have constructed a complete application using the architecture design patterns, frameworks, and idioms which they can then use as is with actual projects, or adapt to an existing Java EE application architecture.
Layered Application Architecture Patterns
Applying Spring/Hibernate Frameworks
- What do they provide, and how do they work?
Annotation-Driven POJO Development
- How the Service design pattern supports scalability and POJO isolation
- Learn how application model, data and object relational mapping is done in a single step
- Hibernate OR Mapping
Generic/Transparent Data Access and Query Pattern
- Applying the DRY principle to data access (Don’t Repeat Yourself)
Aspect Oriented Programming (AOP) for Logging and Exception Handling
- How AOP supports cleaner code
- Annotation driven and XML style aspects
- Introduce automatic test coverage mechanism
- Learn how to consistently and easily define Unit Tests
Partitioning the UI with Spring MVC
- Defining controllers without visiting XML configuration files (i.e. WEB.XML)
- Mapping URLs and processing commands
- Binding forms, wizards, and validation
- JSTL and Spring taglib support
- JSR 168 Portlet Support
Engaging Other Frameworks
- Applying the IBATIS framework for impedance mismatch between model and database
- JSF based user interfaces
- How can Struts MVC be applied?
Continuous Integration Support
- The merits of CI and available solutions
- Introduce pre packaged build ANT scripts
- Ant or Maven?