[Marakana TV] - Java Web Development with Spring and Hibernate

Course Summary
http://marakana.com/training/java/java_web_development_bootcamp.html

Videos and source codes:
https://github.com/marley-spring/marakana.com-spring-and-hibernate


Release-date: September 2012
Run-time: 5 day course, every day has 4 videos that are about 1 hour long.
Video format: .mov (QuickTime Movie)
Resolution: 800x600 and 1024x768


This is Maranaka's on-site course about Spring & Hibernate. It starts by explaining the troubles of using JDBC and JNDI, and then writing the web application with spring and hibernate

Course Outline

Day 1
- class design: Contact, Address ContactRepository (init, findAll, find, create, update,    delete), AddressRepository (...) Setup (servlet context listener)
- servlets / jsps: view all contact names, add a contact contact: edit name, address, delete contact
- JDBC / JNDI / DataSource initialize tables in repositories, use raw sql

Day 2
- finish servlets
- intro hibernate/jpa META-INF/persistence.xml, persistence-unit-ref in web.xml javax.persistence.{ Persistence, EntityManager } @Entity, @Column, @OneToOne - - Rewrite ContactRepository and AddressRepository (findAll, find, create, update, delete) and refactor

Day 3
- intro spring container-managed objects, dependency injection Spring MVC: controllers, @RequestMapping Spring JPA: JpaRepository, bytecode generation
- refactor controller methods model, view, injecting request parameters, redirects
new class design: Contact, Person, Company, Office, Address how to represent polymorphism in jpa? @OneToMany, @ManyToOne, @ManyToMany
- controllers: person: edit name, address, delete person company: edit name, view all offices, add an office, delete company

Day 4
- office front-end introduce UrlEntity helper
- horrible bugs! why doesn't delete work? ... orphan removal lazy loaded associations, open session in view filter
- discussion: Spring high level
- discussion: Transactions and AOP
- discussion: Entity versioning, optimistic locking
- data constraints nullable, length Validation (ex: @NotBlank, all employees of a manager must work for the same company)

Day 5
- REST services more Spring MVC annotations Jackson


To start working with code as teacher, do next (on linux):

$ git clone https://github.com/code-examples/marakana.com-spring-and-hibernate-code-examples.git
$ cd marakana.com-spring-and-hibernate-code-examples/
$ git checkout b46bdc5163f604d12864a622e4129b2df255640b
$ git branch b46bdc5163f604d12864a622e4129b2df255640b


Then you should Import Existing Maven Projects and create folders:

src/main/java
src/main/resources



Java Web Development with Spring and Hibernate (magnetlink)