Java with Spring™ and Hibernate™ Training Course

Training » All Courses » Java » Java with Spring™ and Hibernate™

Course Summary

Marakana Spring/Hibernate Training is a 5-day course that teaches you how to develop enterprise Java web applications with the Hibernate, Spring, Spring MVC, and Spring Security open-source frameworks. The class is designed to run as a hands-on tutorial-style with more than 50% of time being devoted to writing code.

The main goal of this course is to set to students on the right path of developing Java web applications on a best-of-breed software stack (Spring and Hibernate) while utilizing time-tested best-practices. While we don't skip on the theory, students focus most of their energy on why they should use a particular technique, and how to best apply it.

Based on Spring Framework 3.0 and Hibernate 3.6.

[top] Duration

5 days.

[top] Objectives

By taking Marakana Spring/Hibernate Training class, you will:

  • Understand the fundamentals of Java Web Applications
  • Know how to develop Java Servlets, explain the advantages, the disadvantages, and best practices
  • Know how to develop Java Servlet Filters
  • Know how to develop JavaServer Pages (JSP), take advantage of JSTL and JSP Expression Language (EL)
  • Be able to package, deploy, and troubleshoot Java Web Applications.
  • Understand how to access relational databases via JDBC
  • Be able to set up container-managed database connection pool (DBCP) accessed through JNDI
  • Know how to configure container-managed security (authenticating against a relational database)
  • Understand the drawbacks of bare-bones JDBC code and the benefits of an ORM solution
  • Be able to install, configure, and use Hibernate (with Annotations) for the persistence layer
  • Be able to install, configure, and use Spring for the Business and DAO layers
  • Understand the advantages of POJOs and AOP-style development with Spring
  • Be able to use Spring MVC to replace Servlets, get support for binding, validation, navigation, error handling, etc.
  • Be able to take advantage of Spring's Security framework to set up advanced security controls around a Java Web application
  • Set up an application server for SSL, and learn how to selectively require SSL where needed
  • Learn how to use Eclipse for Java EE to help speed up the development efforts
  • Learn how to automate common development tasks with Ant
  • Learn best practices, and overall differences between Spring/Hibernate-based applications when compared to other solution.

[top] Audience

Itermediate Marakana Spring/Hibernate Training course is designed for developers who wish to get into the world of enterprise Java Web development, and avoid all the pitfalls by learning about best practices and the best-of-breed solutions offered by the open-source community.

[top] Prerequisites

The participants taking Marakana Spring/Hibernate Training course must be familiar with Java and the general principles of object oriented programming (OOP).

Prior exposure to the following concepts and technologies is very helpful, but not required:

  • General understanding of web development principles
  • Basic knowledge of HTML and CSS
  • Basic knowledge of JavaScript
  • Understanding of Java 5 Annotations and Generics
  • Basic understanding of the HTTP protocol, including concepts like SSL, redirection, GET vs POST, etc.
  • Basic knowledge of SQL
  • Familiarity with MySQL (or any other relational database)
  • Familiarity with Eclipse IDE (or any other IDE)
  • Familiarity with Tomcat (or any other Java EE application server)
  • Familiarity with Ant

[top] Setup Requirements

The participants should have the following pre-installed:

  • Java SE 1.6 JDK (latest) from http://www.oracle.com/technetwork/java/index.html 
  • Eclipse IDE for Java EE Developers (latest) from http://eclipse.org/downloads/
  • MySQL Server 5.x (latest) from http://www.mysql.com/downloads/mysql/

The participants should have the following pre-downloaded:

  • Apache Tomcat 7.x (latest) from http://tomcat.apache.org/download-70.cgi
  • Apache Ant 1.7+ from http://ant.apache.org/bindownload.cgi
  • MySQL Connector/J 5.1 (latest) from http://www.mysql.com/downloads/connector/j/
  • Spring Framework 3.0.x (latest) from http://www.springsource.com/download/community?project=Spring%20Framework
  • Spring Security 3.0.x (latest) from http://www.springsource.com/download/community
  • Hibernate Core 3.6.x (latest) from http://sourceforge.net/projects/hibernate/files/hibernate3/
  • Hibernate Validator 4.0.x (latest) from http://sourceforge.net/projects/hibernate/files/hibernate-validator/
  • SLF4J 1.6.x (latest) from http://slf4j.org/download.html
  • EhCache Core 2.5.x (latest) from http://ehcache.org/downloads/catalog
  • AOP Alliance 1.0.x (latest) from http://sourceforge.net/projects/aopalliance/files/aopalliance/1.0/

[top] Instructors

Photo

Aleksandar (Saša) Gargenta is the technology brains at Marakana. Always on top of the latest in software, Aleksandar is the company's radar for technology that matters. His latest ventures are perfecting Marakana's Android Internals and Security courses.

Phew. And if that's not enough, he's also the chief architect of Marakana Spark, the on-demand software platform that powers marakana.com and a number of other training companies. As an instructor he's taught hundreds of classes for everyone from Apple to Disney, from NASA to the Department of Defense.

In his spare time Aleksandar runs the San Francisco Java, Android, and HTML5 User Groups with over three thousand members across the three groups.

Aleksandar holds a bachelor’s degree in Mathematics and Computer Science from the University of Waterloo. He is also a father, photographer, hiker, and a race-car driver :-)

More about Aleksandar Gargenta...
Photo
He is an experienced developer and has spent a majority of his career building large-scale online applications at Accenture and at several Web-centric consulting firms. He now specializes in training Java developers to be more productive by using the latest technologies and frameworks. Jim has provided training for Fortune 500 companies and large private and governmental organizations including Knight Ridder Newspapers and the State of Wisconsin. He lectures extensively throughout the United States and Canada. He is also the author of "Dojo: Using the Dojo JavaScript Library to Build Ajax Applications". More about James Harmon...
Photo
After graduating with a Computer Science degree from University of Cape Town, South Africa, Martin spent 13 years developing his career with WorldGroup consulting, starting as a Java programmer and ending his career there in 2005 as Chief Technical Officer of a company selling a J2EE infrastructure based product set to Fortune 500's. In 2005 Martin left his position and founded Javadojo, a company dedicated to building cutting edge delivery platform's in Java and hiring the best Java people in the business. Martin has been an educator for the last three years teaching open source technology across the globe.

Additionally Martin has been producing electronic music for the last few years using Ableton Live. He has released two albums and has been playing his music live around the US and at festivals such as the Coachella, Shambhala and Burning Man festivals. More about Martin Folb...

[top] Outline

Java EE

  • Overview of Java EE (a.k.a. J2EE)
  • Comparison of Java EE with other enterprise technologies

Java Web Applications

  • Overview of Java Web Application Development
  • Overview of Servlets: advantages, disadvantages, API, life-cycle, etc.
  • Java Web Application development life-cycle
    • Writing Code
    • Compiling Code
    • Writing Deployment Descriptors (WEB-INF/web.xml files)
    • Packaging web applications (generating WAR files)
    • Deploying web applications (e.g. on Tomcat)
  • Overview of Java Servlet Filters: uses, API, life-cycle, etc.
  • Overview of JavaServer Pages (JSP): advantages, disadvantages, API, life-cycle, etc.
  • Overview of JSTL
  • Overview of JSP Expression Language (EL)
  • Best practices with Servlets and JSPs: examples and labs

Database-driven Java Web Applications

  • Connecting to databases from Java web applications
  • Review of JDBC
  • Overview of JNDI
  • Overview of container-managed database connection pools (DBCP)
  • Overview of DAO design pattern
  • Using both Servlets and JSPs through clean design: examples and labs

Hibernate

  • Overview of Object-relational-mapping (ORM) frameworks
  • Overview of Hibernate: advantages, features, etc.
  • Overview of EJB3's JPA
  • Switching from JDBC to Hibernate
  • Installing and configuring Hibernate
  • Mapping entities with Hibernate Annotations
    • Mapping associations and collections
      • One-to-one, one-to-many, many-to-many
      • Understanding directionality (e.g. bi-directional)
    • Mapping inheritance (understanding different strategies)
  • Getting and using Hibernate session
  • Understanding transactions
  • Storing entities
  • Retrieving data
    • Hibernate Query Language (HQL)
    • Named queries
    • Criteria API
    • Query by example
    • Filtering data
  • Understanding entity states: transient, persistent, and detached
  • Tuning Hibernate: fetching strategies and caching
  • Best-practices: examples, and labs

Spring Framework

  • Overview of Spring
    • Drawbacks of previous approachaes
    • Inversion of control (IoC) with Dependency Injection (DI) design patterns
    • Advantages of Spring: programming to interfaces, testability, modularity, etc.
    • Spring framework as a replacement for EJB
    • Overview of the Spring Container
  • Wiring beans with Spring
    • Via XMl
    • Via Annotations
  • Spring-Hibernate integration
  • Transaction management
    • Via Annotations (@Transactional)
    • Via XML
    • Understanding transaction propagation
  • Understanding AOP in Spring
  • Overivew of Model-View-Controller (MVC) design pattern
  • Overview of Spring MVC
  • Switching from Servlets to Spring
  • Installing and configuring Spring
  • Overview of Spring Controllers
    • Controller (interface) vs @Controller
    • Handler (controller) mapping strategies
    • View resolver strategies
  • Overview of Spring validation with JSR 303 with Hibernate Validator (@Valid, @NotNull, @Size, @NotEmpty, @Email, etc.)
    • Custom validation annotations and validators
  • Best-practices: examples, and labs

Spring Security Framework

  • Overview of container-managed security
  • Overview of Spring Security framework
  • Switcing from container-managed to Spring security
  • Installing and configuring Spring Security
  • Exposing security context in the application
  • Creating authentication and authorization-aware user interfaces
  • Securing the business layer with JSR 250-style method-based annotations (AOP)

[top] Additional Notes

 

About the Platform

This course is typically delivered on Eclipse, Tomcat, and MySQL.

Marakana.com Runs on Java with Spring and Hibernate

Spark Stack

Marakana.com is written in Java using Spring and Hibernate frameworks. We deploy it on Apache Tomcat Application Server. Both Marakana Spark and Apache Tomcat are Java applications and thus run on Java Virtual Machine. Spark uses MySQL database for persistence. Our operating system of choice is Ubuntu Linux, for security and reliability reasons. So we practice what we teach. You will learn from real developers.

Java Meetup Organized by Marakana

SF Java Users GroupMarakana team organizes and runs the San Francisco Java Meetup - an interactive group of Java developers. In our monthly meetings, we discuss Java landscape from both technology and business angles. We often have great presentations by industry experts, group discussions, as well as hands-on sessions. If you are in San Francisco Bay Area, we encourage you to join the group and meet other Java developers.


[top] Student Testimonials

The session on Hibernate and Spring framework is great one. The instructor demonstrates great hand on knowledge on Java and all latest frameworks. The instructor given some great examples for how do good design and code using Spring and Hibernate.

Narayanan - eTouch Systems

I went from some weak, outdated Java skills to using and understanding some powerful frameworks. I learned much more than I expected. Training classes in general can be hit-or-miss, but this one with this instructor is excellent. He helped bring everyone up to speed and ensured we all understood the technologies involved.

Steven - UC Davis

Overall very good traing. As per the pace, it was fast paced, but was ok as there were so many topics to be covered.

Sweta - Fujitsu Siemens Computers, Inc.

VERY impressed. I SO needed this course and feel that I got a great deal out of it. Thank you so much!

Broc - CFCU

The course was well organized and the instructor has good knowledge about this topics.

Kazuto - Fujitsu Siemens Computers, Inc.

Instructor was very easy to listen to and retain my attention despite such a long training period.

Kim - Haemonetics

Wonderful class. Fantastic instructor (Aleksander). Fast paced, but very useful. I learned *so* much. The instructor was so knowledgeable he was able to answer every single question presented to him. Nice touch was also the free lunches. :)

Pia - Unemployed Engineer

Nice class...and try a different and simpler training web application to develop and built into a more web complex application. Nice very nice!
Aleksandar is a great teacher. He knows his subject material to a depth I usually don't see. I enjoyed learning from someone who knows his stuff so well.

Blaise - UCD

We covered alot of material in a short period of time and it went extremely well. Highly recommend this course.

Trevor - Haemonetics

This course introduced me to Java web development. Aleksander demonstrated solid understanding of the topic. I would definitely recommend the course to my friends and colleagues.
Overall the course was clear, excellent, well-driven and the teacher knew the subject well. Great course, very clear. I'll recommend it for sure.

Laurent - Marakana, Inc.

Instructor has very good knowledge and is able to reach out. Overall the course was really helpful to understand.

Priyesh - eTouch Systems

The length of THIS course should be 2 weeks because all the topics covered in itself is a course.

Amardeep - Fujitsu Siemens Computers, Inc.

The course was unbelievable and the instructor really knew the information. I was amazed how quickly the instructor was able to figure out student problems and answer/address any problems or concerns presented. I learned so much from the course.

Michael (Mike) - Peerless Technologies Corporation

Great class. I've learned a lot about the subject matter and would love to take another one in the near future. Thanks Sasa!

Roberto - Fresenius Medical Care

I learned alot!!!

Kevin - Fujitsu Siemens Computers, Inc.

The method used to teach concepts was very excellent. I liked Sasa's way of presentation. Recommend the course.

Jagadeesh - Fujitsu Siemens Computers, Inc.

Martin was an extremely knowlegable and well natured individual.

Perry - 5D

Excellent work by Alex. Thumbs up.

Manivannan - eTouch Systems

It was a fast paced class, that gave a great overview of Web development using spring and hibernate.

Peter - Fujitsu Siemens Computers, Inc.

Teacher was excellent! The sample project was excellent. It will make a good project to use as a foundation for our next spring project.

Tom - UC Davis