Visão Geral
Curso Spring Hibernate , Hibernate e Spring são estruturas Java de software livre que simplificam o desenvolvimento de aplicativos Java/JEE, desde aplicativos simples e independentes executados em uma única JVM até aplicativos corporativos complexos executados em servidores de aplicativos completos. O Hibernate e o Spring permitem que os desenvolvedores produzam código escalável, confiável e eficaz. Ambos os frameworks suportam configuração declarativa e trabalham com um modelo de programação POJO (Plain Old Java Object) (discutido posteriormente neste artigo), minimizando a dependência do código do aplicativo nos frameworks e tornando o desenvolvimento mais produtivo e portátil.
Conteúdo Programatico
Introduction to Hibernate
- Issues with Persistence layers and Object-Relational Mapping (ORM)
- Hibernate Overview and Benefits
- Hibernate architecture overview
- POJO (Plain Old Java Object) Based Mapping
Getting started with Hibernate quickly
- Overview of the Hibernate distribution
- Configuring Hibernate
- hibernate.cfg.xml file
- SessionFactory configuration
- Connection properties, Database dialect
- Configuration class, Session Interface
- Hello World Program for Hibernate
- Mapping a Class
- Persistent Entity Class, Hibernate Mapping
- File, Mapping the Entity Class
- Primary keys: Id property, Generated Id
- Hibernate Type System
- Working with sessions and Persistent Objects
- Logging - log4j Overview and configuration for Hibernate
Querying
- Inserting and Updating Entities
- HQL - Hibernate Query Language Overview
- The Query Interface
- Creating and working with queries
- Named Queries, Projection Queries, Aggregate Queries
The Persistence Lifecycle
- Transaction Overview and Transactions in Hibernate
- Hibernate Transaction API (in Managed and Non-managed Environments)
- The lifecycle of managed objects
- Persistent, transient, and detached objects
- The Persistence (Session) Context (Lifespan, Relation to Managed Objects, Propagation)
- Contextual Sessions
- Synchronization to the Database
- The Session as cache
Optimistic Locking / Versioning
- Detached Objects and Optimistic Locking
- Versioning overview and Using Versioning
- Locking Objects
Relationships
- Object Relationship Overview
- Mapping Collections of Value Objects
- Entity Relationships: 1-N, N-1, N-N, 1-1
- Mapping Entity Relationships
- Uni and Bi-directional Relationships
- The Relationship "inverse"
- Cascading Over Relationships
- Queries Across Relationships (Lazy and Eager)
Inheritance Mapping
- Entity Inheritance with Hibernate
- Table-per-class mapping
- Table per Subclass mapping
- Table per Concrete Class mapping
Additional Querying Capabilities
- Projection Queries, Aggregate queries
- Bulk updates and deletes
- Native SQL Queries
- Query Filters
The Criteria API
- Overview of the Criteria API
- Working Querying with the Criteria API
- Query by Example
Hibernate and Java Persistence / EJB 3
- Overview of Java Persistence / EJB 3
- Relationship between Java Persistence and Hibernate
- Overview of Annotations
- Mapping Entities with Hibernate Annotations
- The EntityManager, Persistence Context and Persistence Unit
- Working with Transactions - EntityTransaction, Managed, and Unmanaged Environments
- Inserts and Updates
- JPQL - Java Persistence Query Language
- Versioning
- Relationships
Advanced Topics
- Components and Multi-Table Mapping
- equals() and hashCode()
- Caching and Efficiency
- Design Considerations
TRACK II :
Overview
- Java EE: The Good, The Bad, and the Ugly
- Enter the Framework
- Spring Modules
- Controlling Object Creation
- Web Applications
- Persistence Support
- Aspect-Oriented Programming
- Integrating Other Frameworks
Core Techniques
- Component-Based Software
- JavaBeans, Reconsidered
- The Factory Pattern
- Inversion of Control
- XML View: Declaring Beans
- Java View: Using Beans
- Singletons and Prototypes
- Initializing Bean State
Dependency Injection
- Complex Systems
- Assembling Object Graphs
- Dependency Injection
- Single and Multiple Relationships
- The Utility Schema
- Autowiring
- Bean Aliases
- Order of Instantiation
Validation
- Validators
- The Errors Object
- ValidationUtils
- Error Messages and Localization
- Nested Property Paths
The Web Module
- Servlets and JSPs: What's Missing
- The MVC Pattern
- The Front Controller Pattern
- DispatcherServlet
- A Request/Response Cycle
- The Strategy Pattern
- JavaBeans as Web Components
- Web Application Contexts
- Handler Mappings
- Creating a Model
- View Resolvers
Customizing Spring MVC
- HandlerMapping Options
- ViewResolver Options
- Chaining View Resolvers
- Triggering Redirects
Controllers and Commands
- Working with Forms
- Command Objects
- The Template Method Pattern
- Command Controllers
- Data Binding
- MultiActionController
- Scope and Granularity of Command Objects
Web Binding and Validation
- Property Editors
- Custom Property Editors
- Registrars
- Validating Form Input
Form Controllers
- Form Controllers
- AbstractFormController
- SimpleFormController
- Spring Custom Tags and Friends
- Reporting Errors
- Refining the Handling Cycle
- The Intercepting Filter Pattern
- Exception Handling
- Interceptors
- The Decorator Pattern
- Context and Lifecycle
- Awareness Interfaces
- Support and Utility Classes
- Death By XML
The Persistence Tier
- The DAO Pattern
- The DaoSupport Hierarchy
- The DataAccessException Hierarchy
- JDBC DAOs
- JdbcTemplate and RowMapper
- Object/Relational Mapping
- Hibernate DAOs
- Transaction Control
- AOP vs. Annotations