What characterizes Java Development?

Java stands out as a multi-platform, object-oriented programming language with a focus on networking. Over the past two decades, it has remained a preferred choice among developers for crafting web applications, evident from the multitude of Java applications in circulation today. Why the widespread popularity? Java's popularity stems from its attributes of speed, security, and reliability, making it suitable for diverse applications ranging from mobile apps and enterprise software to big data and server-side technology. Its versatility and demand across various industries position Java developers as some of the highest-paid specialists in the IT sector.

Objectives
•Elucidate how Hibernate resolves challenges pertaining to object persistence within a relational model.
•Comprehend the interconnections among SQL, Java, Spring, and Hibernate.
•Delve into the obstacles encountered when incorporating Hibernate into enterprise systems.
•Develop applications leveraging the capabilities of the Hibernate Persistence Manager.
•Translate Java classes into relational tables.
•Capture both relational and inheritance associations through metadata using XML or Java 5 Annotations.
•Establish and apply mappings between Java classes and relational databases.
•Grasp the handling of identity and keys within Hibernate.
•Understand the lifecycle of persistent objects and its correlation with transactions and concurrency.
•Utilize Hibernate's data filtering and interception functionalities.
•Examine the challenges associated with complex frameworks like Java EE and how Spring tackles these issues.
•Create applications leveraging the Spring container and its ability to assemble simple components declaratively into applications.
•Employ Spring's transaction support.
•Learn to integrate Hibernate within the Spring framework.
Prerequisite / Target Audience: Individuals aiming to learn the Spring Framework should possess fundamental understanding of Java and databases, including
• Core Java knowledge.
• Familiarity with databases.
• Basic comprehension of web application development.
Module 1: Spring Basics
This module is the core of the Spring Framework. It provides implementation for features like ,IoC (Inversion of Control) and Dependency Injection with singleton design pattern.
• What is Spring Framework
• Inversion of Control
• Dependency Injection
• Bean Factory
• Developing First Spring Applicationy
Module 2: Built-in Bean Factories

This module provides implementation for the factory design pattern through BeanFactory, and we will learnimplementation of ApplicationConext.

• Application Context
• Wiring Beans
• Bean Lifecycle in Container
• Spring Events
Module 3: Spring AOP

In this module we will learn by separating application business logic from system services, Spring Framework supports Aspect Oriented Programming and enables cohesive development.

•Introduction to AOP
•Role of AOP in Spring
• AOP Advice
•AOP Pointcuts
•Spring AOP Introductions
•ProxyFactoryBean

Module 4: Spring Data Access

This module provides JDBC abstraction layer which eliminates the need of repetitive and unnecessaryexception handling code.
• JDBC Abstraction Layer
• Data Access Exceptions
• DAO Support

Module 5: Spring O-R Mappingp

ORM stands for Object Relational Mapping. This module provides consistency/ portability to our code regardless of data access technologies based on object oriented mapping concept.

• What is O-R Mapping
• O-R Mapping support in Spring
• Hibernate Support / Mapping
Module 6: Spring Transaction Management

This module supports programmatic and declarative transaction management for classes that implement special interfaces and for all your POJOs. All the enterprise level transaction implementation concepts can be implemented in Spring by using this module.
• Transaction Abstraction in Spring
• Transaction Strategies
• Programmatic Transaction
• Declarative Transaction
• DAO Support

Module 7: Spring Remoting and Enterprise Services•

Introduction to Spring Remoting

In this module we will learn how spring Remoting will be implemented by following RMI and various remotingtechnique.

• Java RMI in Spring
• Accessing JNDI
• Invoking EJB from Spring
• Web Service in Spring using JAX-RPC Support
• Messaging Support in Spring using JMS
• Sending Mail with Spring Mail
• Scheduling using Timer Support
Module 8: : Spring Web MVC Framework

This module contains Model-View-Controller (MVC) based implementation for web applications. It provides allother features of MVC, including UI tags and data validations. Web MVC Architecture

• Role of DispatcherServlet
•Controller
• Handler
•View Resolving
•Data Binding
•File Upload Support
Module 9: Securing Spring Applications

In this module we will learn how spring security will be implemented by HTTP basic authentication and following concept.

• Acegi Security System for Spring
• Authentication
• Access Control
• Web Application Security
• Method Invocation Security
Module 10: Spring Boot

In this module we will learn how Spring Boot makes it easy to create stand-alone, and pre compiled springbased Applications that we can "just run".

•Introduction Spring boot
•Installation of STS in eclipse
• Using Spring STS IDE
• Using Spring Initializer Website
• Hello World example using spring boot
• Java-Based Applications
Relational Persistence UsingHibernate
Module 1: Introduction to Hibernate

In this module we will learn how Hibernate framework simplifies the development of java application to interact with the database. Hibernate is an open source, lightweight, ORM (Object Relational Mapping) tool.

• Drawbacks of direct JDBC
• Plain Old Java Object (POJO)
• What is O-R Mapping
• Simple Database Application
Module 3: Hibernate Concepts

In this module we will learn how primary key will be configured and how we can make auto increment and crud example by using hibernate.
• Id and Primary Key
• Id Generation Methods
• SessionFactory
• Session
• Transaction
• Developing CRUD Application

Module 4: Hibernate O-R Mapping

In this module we will learn how different types of operation with respect to database and how the relationship of database can be maintained by following OR-Mapping.

• Mapping Declarations
• Modeling Composition with Relationship
• Modeling Composition with Components
• One-to-One Association
• One-to-Many Association
• Many-to-Many Association
• Uni and Bidirectional Associations
• Hibernate Value Types
• Custom Types
Module 5: Hibernate Concepts

In this module we will come to know how hibernate hibernate detects any changes made to that object and synchronizes it with database when we close or flush the session.

• Persistent Objects
• Object Loading
• Executing Queries
• Iterating Results
• Scalar Results
• Bind Parameters
• Pagination
Module 6: Hibernate Query Language

This module will learn about Hibernate Query Language (HQL) is an object-oriented query language, similar toSQL, but instead of operating on tables and columns, HQL works with persistent objects and their properties.

• Select clause
• From clause
• Where clause
• Aggregate functions
• Expressions
• Sorting
• Grouping
• Sub queries
Module 7: Criteria Queries

In this module we will learn how to perform restriction between different classes and range of built-in criteriontypes (Restrictions subclasses).

• Creating Criteria
• Narrowing the Result
• Ordering the Result
Module 8: Native SQL

In this module we will learn use of Session.createSQLQuery(String query) to create the SQLQueryobjectand execute it.

• Using SQL Query
• Named SQL Query
• Using Stored Procedure for Querying
• Creating Custom SQL for CRUD
Module 9: Transactions and Concurrency

In this module we will come to know how a transaction is a unit of work in which either all operationsmust execute or none of them. To understand the importance of transaction,

• Session and Transaction Scopes
• Database Transaction Demarcation
• Optimistic Concurrency Control
• Pessimistic Concurrency Control
At the end of the course participants will be able
• Work in any spring and hibernate based project.
• Understand complete ORM feature by using hibernate.
• Messaging service
• Simple storage service.
Real-time Project involving most of the above concepts with following will be provided
• Product Abstract Document
• Requirement Specification Document
• Step-by-Step procedure for building the project from ground up
• Complete Source Code
• Database Script with Sample data
• Instructionsto Setup the Project on a Development box
• Instruction to Deploy the project on Production Box / Tomcatserver
At the end of the course participants will be able to
1.Work in spring and hibernate application.
2.Will be able to perform all operation including transaction management etc.