| Overview 
				
This course enables the experienced Java developer to use the Spring application framework to manage objects in a lightweight, inversion-of-control container, and to build persistence components and application tiers using Spring's support for relational databases and transaction control.
 Spring's core module gives the developer declarative control over object creation and assembly; this is useful for any tier of any Java application, so we study it in some depth to begin the course. Then students build persistence code using the Spring DAO and ORM modules, using both JDBC and JPA, with Hibernate as the provider. We study both programmatic and declarative transaction control. The course concludes with a chapter on Spring's testing framework, with a focus on test-managed transactions.
 
 Prerequisites
 
Learning ObjectivesJava programming is required
Basic knowledge of XML is recommended
For the final chapter some undersatnding of JUnit is required
			       
 Course DurationUnderstand the scope, purpose, and architecture of SpringUse Spring application contexts to declare application components, rather than hard-coding their states and lifecyclesUse dependency injection to further control object relationships from outside the Java code baseUse annotations to take advantage of Spring post-processors for automated bean instantiation and wiringConnect business objects to persistent stores using Spring's DAO and ORM modulesSimplify JDBC code using Spring templatesIntegrate JPA entities and DAOs into Spring applicationsControl transactions using Spring, either programmatically or declarativelyDevelop effective unit tests using Spring's test framework
 
 3 Days
 
 Course outline
 
 IDE Support: Eclipse Luna or higher
 Chapter 1. Overview of SpringIn addition to the primary lab files, an optional overlay is available that adds support for Eclipse Luna or higher. Students can code, build, deploy, and test all exercises from within Eclipse, and take advantage of Eclipse's built-in editors and wizards for web applications, XML files, JSPs, and more
 
Chapter 2. The ContainerJava EE: The Good, The Bad, and the UglyEnter the FrameworkSpring Value PropositionThe Spring ContainerWeb ApplicationsPersistence SupportAspect-Oriented ProgrammingThe Java EE Module(s) 
Chapter 3. Instantiation and ConfigurationJavaBeans, ReconsideredThe Factory PatternInversion of ControlXML View: Declaring BeansJava View: Using BeansSingletons and Prototypes 
Chapter 4. Dependency InjectionConfiguring Through PropertiesConfiguration NamespacesThe p: NotationBean (Configuration) InheritanceConfiguring Through ConstructorsBean Post-ProcessorsLifecycle HooksIntegrating Existing Factory CodeAwareness Interfaces 
Chapter 5. Assembling Object ModelsAssembling Object GraphsDependency InjectionSingle and Multiple RelationshipsThe Utility SchemaUsing Spring Expression Language (SpEL)Inner BeansAutowiring@Component, @Service, & Company@Autowired PropertiesBest Practices with Spring AnnotationsJava Classes as @ConfigurationsAnnotationConfigApplicationContextCapabilities and LimitationsMixing and Importing XML and Java Configurations 
Chapter 6. Persistence with JDBCCollections and MapsSupport for GenericsThe Spring Utility Schema (util:)Autowiring to Multiple BeansOrder of InstantiationBean Factory vs. Application Context 
Chapter 7. Persistence with JPAReducing Code ComplexityThe DataAccessException HierarchyJdbcTemplateRowMapper<T> and ResultSetExtractor<T>The DaoSupport HierarchyCapturing Generated KeysTransaction ControlPlatformTransactionManagerTransactionTemplateIsolation LevelsTransaction Propagation 
Chapter 8. TestingObject/Relational MappingThe Java Persistence APIJpaDaoSupport and JpaTemplate@PersistenceUnit and @PersistenceContextShared Entity ManagersUsing <tx:annotation-driven>The @Transactional AnnotationIsolation and PropagationA Limitation of @TransactionalUnderstanding Entity StatesConfiguring JPA Without persistence.xmlBean Validation in JPAOptimistic Locking 
System RequirementsTestability of Spring ApplicationsDependency InjectionMockingSpringJUnit4ClassRunnerTestContext@ContextConfigurationPreserving Test Isolation@DirtiesContextAbstractTransactionalJUnit4SpringContextTestsTesting JPA ComponentsMixing JPA and JDBCTestTransactionProfiles 
 Hardware Requirements (Minimum)
 Hardware Requirements (Recommended)Core i5, 1.8 GHz, 4 gig RAM, 1 gig disk space
 Operating SystemCore i5, 2.5 GHz GHz, 8 gig RAM, 1 gig disk space.
 Network and SecurityTested on Windows 7/8, Mac OS 10.8.5.
 Software RequirementsLimited privileges required  
 All free downloadable tools. 
 
 |