Course Summary
Marakana Spring/Hibernate Training is a 5-day course that teaches you how to develop enterprise Java web applications with the Spring, Hibernate, and Spring Security (Acegi) 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.
Duration
5 days.
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 set up Spring's Security (a.k.a. Acegi) 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 about AJAX, and how to use it with Spring through the Prototype JS library
- 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.
Audience
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.
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
- 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
Instructors
Aleksandar (Saša) Gargenta is the technology brains at Marakana. Always on top of the latest in software, Aleksandar is company's radar for technology that matters.
Aleksandar is the author of Marakana's Java, Advanced Java, Spring/Hibernate, JBoss, Apache, XML/XSL, and JUnit/TestNG training 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 and the San Francisco Android User Groups with over a thousand members between the two.
More about Aleksandar Gargenta...
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. Martin is currently working on a revolutionary open source music standard, to produce a platform for musicians to share and contribute to their art using the principals of open source software. Martin also teaches digital music production with tools such as Ableton Live and Cubase.
Martin has several real estate projects in progress in the Nicoya Peninsula in Costa Rica where he purchased large tracts of land several years ago and has begun developing infrastructure and reselling subdivisions. The ultimate goal in this project is to develop a 50 acre nature preservation around a man made reservoir, for the protection and preservation of indigenous animal and bird species that live in these coastal regions. More about Martin Folb...
Additional Notes
About the Platform
This course is typically delivered on Eclipse, Tomcat, and MySQL.
Marakana.com Runs on Java with Spring and Hibernate

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
Marakana 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.
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 ORM frameworks
- Overview of Hibernate: advantages, features, etc.
- Overview of EJB3's JPA
- Switching from JDBC to Hibernate
- Installing and configuring Hibernate
- Overview of Hibernate Annotations
- Overview of Hibernate Query Language (HQL)
- Overivew of Hibernate caching (through EHcache)
- Best-practices: examples, and labs
Spring Framework
- Overivew of Model-View-Controller (MVC) design pattern
- Overview of the overall Spring framework (as a replacement for EJB)
- Overview of Spring MVC
- Switching from Servlets to Spring
- Installing and configuring Spring
- Overview of Spring Controllers
- Overview of Spring Validators
- Best-practices: examples, and labs
Spring Security Framework
- Overview of container-managed security
- Overview of Spring Security framework (a.k.a. Acegi)
- Switcing from container-managed to Spring security
- Installing and configuring Spring Security
- Exposing security context in the application
Course Testimonials
VERY impressed. I SO needed this course and feel that I got a great deal out of it. Thank you so much!
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. :)
Well prepared and up-to-date examples. Instructor answered questions thorougly and clearly.
Highly recommend this course. Thank you!!
Good course. Broad coverage including some stuff we didn't expect but will find useful.
I learned a lot - Sasa is very knowledgeable and fluidly adapts questions and the code to comments/questions.
Instructor had a lot of energy and a good sense of humour.
The instructor 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.
Great class. I've learned a lot about the subject matter and would love to take another one in the near future. Thanks Sasa!
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.
Teacher was excellent! The sample project was excellent. It will make a good project to use as a foundation for our next spring project.
Nice very nice!
This course was very useful. The material was very good. I loved the hands-on labs. The instructor was really good. He was well prepared and answered questions very well.
Awesome training ...
Great course, very clear. I'll recommend it for sure.
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.