SlideShare a Scribd company logo
1 of 32
Workshop of Spring Application Framework at Capegemini




                                        Presented By
                                      Rajkumar Singh


                                 www.rajkrrsingh.blogspot.com
Agenda

Introduction
Spring Architecture
Spring Beans
Spring IOC
Setting up Spring Environment
Beans Life cycles
Spring DAO
Spring ORM
Spring AOP
Q&A




                                 www.rajkrrsingh.blogspot.com
Introduction
Spring framework was initially written by Rod Johnson and
was first released under the Apache 2.0 license in June
2003.

Primary purpose is to reduce the dependencies(loose
couple)

Spring deliver many significant benefits to the developers
reducing development effort and cost while improving test
coverage and quality

Handle the infrastructure so that developer can focus on
the development only

Enables you to build application from POJOs

Spring does not recreate all the framework but make use of
the existing one like ORM,logging,JEE framework.
                                    www.rajkrrsingh.blogspot.com
What Spring Offers


Dependency Injection

Aspect Oriented Programming (AOP)

Portable Serives
  ORM
  DAO
  MVC




                               www.rajkrrsingh.blogspot.com
Application Layering


Presentation Layer
   Spring MVC
   Spring Web Service Layer
                      Gateway to expose business logic to the outside world

Persistence Layer    Not well defined in many applications today or tightly
                      coupled in an inappropriate layer.
  JDBC
  ORM                Manages ‘container level services’ Eg. transactions,
                      security, data access logic, and manipulates domain objects

Domain Layer
  POJOs



                                         www.rajkrrsingh.blogspot.com
Spring Architecture




                      www.rajkrrsingh.blogspot.com
Spring Architecture



Core & Beans:
Provides fundamental functionality & Dependency Injection features.
Primary component is the BeanFactory (Factory pattern )

The Context module
Builds on the base modules.
Access objects in a framework-style manner similar to a JNDI registry.
Also supports Java EE features such as EJB, JMX ,and basic remoting.
The ApplicationContext interface is the focal point of the module.

The Expression Language module
Provides a powerful expression language for querying and
manipulating an object graph at runtime.

                                           www.rajkrrsingh.blogspot.com
Spring Architecture
The JDBC module
a JDBC-abstraction layer that removes tedious
JDBC coding, parsing of database-vendor specific error codes.
The ORM module
integration layers for ORM APIs, including JPA, JDO, Hibernate, & iBatis.

The OXM module supports
Object/XML mapping implementations for JAXB, Castor, XMLBeans, JiBX and X

The JMS Module
contains features for producing and consuming messages.


 The Transaction module supports
 programmatic and declarative transaction management



                                             www.rajkrrsingh.blogspot.com
Spring Architecture
Spring's Web module
provides basic web-oriented integration features
(multipart file-upload)
initialization of the IoC container using servlet listeners
Web Servlet
Spring's model-view-controller (MVC)



The Web-Struts module
contains Support classes for integrating a classic Struts web tier within
 a Spring application.


The Web-Portlet module
provides the MVC implementation to be used in a portlet environment



                                                 www.rajkrrsingh.blogspot.com
Spring IOC
Inversion of control is all about Object Dependencies

Traditional Object Creation Approach
         Direct Object Creation  new Employee()
         FactoryImplementation   EmpFactory().getEmp()
         JNDI Services           naming.lookup()

Spring Approach

Spring Container creates all the objects,
wires them together by setting the necessary
properties, and determines when methods will
be invoked.




                                           www.rajkrrsingh.blogspot.com
Spring Container
Fundamental part of the framework.
Two packages provides the basis for the Spring Framework's IoC container.
– org.springframework.beans
– org.springframework.context

BeanFactory provides the configuration framework and basic functionality,
and the ApplicationContext adds more enterprise-specific functionality.

The org.springframework.beans.factory.BeanFactory is the actual representati
the Spring IoC container

Responsible for containing and managing beans.

The most commonly used BeanFactory implementation is the XmlBeanFactor

The XmlBeanFactory takes XML configuration metadata and uses it to create
configured system or application.


                                            www.rajkrrsingh.blogspot.com
Spring Container

The interface org.springframework.context.ApplicationContext represents the
Spring IoC container and is responsible for instantiating, configuring, and
assembling the beans.

The container gets its instructions by reading configuration metadata.

The configuration metadata is represented in XML and Java annotations

Several implementations of the ApplicationContext interface are supplied
 with Spring.

In standalone applications it is common to create an instance of
ClassPathXmlApplicationContext or FileSystemXmlApplicationContext




                                             www.rajkrrsingh.blogspot.com
Ways To Initialize Spring Container




                        www.rajkrrsingh.blogspot.com
Type of Dependency Injection

 Setter method Injection

 Constructor Injection

 Configuration File Injection




                                 www.rajkrrsingh.blogspot.com
Examples for dependency Injection
Setup Enviornment for Spring


Install JAVA
If you are running Windows and installed the JDK in C:jdk1.6.0_15, you would have to
put the following line in your C:autoexec.bat file.
set PATH=C:jdk1.6.0_15bin;%PATH%
set JAVA_HOME=C:jdk1.6.0_15


Unix (Solaris, Linux, etc.), if the SDK is installed in /usr/local/jdk1.6.0_15 and you use the
C shell, you would put the following into your .cshrc file.
setenv PATH /usr/local/jdk1.6.0_15/bin:$PATH
 setenv JAVA_HOME /usr/local/jdk1.6.0_15

Download Spring Jars

Install Common Logging
Download Apache Commons Logging API from http://commons.apache.org/logging

Install Eclipse and setup for Spring


                                                       www.rajkrrsingh.blogspot.com
Reference to Other Beans (DI)




                       www.rajkrrsingh.blogspot.com
Some More Example
Alias

Import




Initialize bean static Bean Factory Method
         <bean id="mp3ply" class="com.test.Mp3Player" factory-method="factoryMethod">

         </bean>

         public Class Mp3Player{
         private static Mp3Player mp3ply = new Mp3Player();
         public Mp3Player(){}

         public static Mp3Player factoryMethod(){
         return mp3ply;
         }
         }


                                                              www.rajkrrsingh.blogspot.com
Some More Example

Collections

Inner Beans

Autowire

Namespaces

Depends Upon

ApplicationContextAware interface

BeanNameAware interface

InitializingBean interface



                                     www.rajkrrsingh.blogspot.com
Beans Scopes

Scope            Description

                 This scopes the bean definition to a single instance per
singleton
                 Spring IoC container (default).

                 This scopes a single bean definition to have any number of
prototype
                 object instances.
                 This scopes a bean definition to an HTTP request. Only
request          valid in the context of a web-aware Spring
                 ApplicationContext.
                 This scopes a bean definition to an HTTP session. Only
session          valid in the context of a web-aware Spring
                 ApplicationContext.
                 This scopes a bean definition to a global HTTP session.
global-session   Only valid in the context of a web-aware Spring
                 ApplicationContext.




                                              www.rajkrrsingh.blogspot.com
Beans Life Cycle
 When a bean is instantiated, it may be required to perform some initializatio
to get it into a usable state

When the bean is no longer required and is removed from the container,
some cleanup may be required.

Register the shutdown hook for the ApplicationContext

Callback Methods: Init and destroy methods
   The init-method attribute specifies a method that is to be called
        on the bean immediately upon instantiation
   destroy-method specifies a method that is called just before a bean
        is removed from the container.




                                            www.rajkrrsingh.blogspot.com
Beans Post Processors
 The BeanPostProcessor interface defines callback methods that you can
  implement to provide your own instantiation logic

You can also implement some custom logic after the Spring container finishe
  instantiating, configuring, and initializing a bean by impl PostProcessors

You can have multiple Bean Post processor and can define their order of
  execution

ApplicationContext automatically detects any bean as a post processor who
implements BeanPostProcessor Interface




                                          www.rajkrrsingh.blogspot.com
Aspect Oriented Programming(AOP)

   ObjectA                                 ObjectC
                                           methodA()
   methodA()
                                           .
   .
                                           .
   .
                                           methodN()
   methodN()v
                Logging      Security


                 Aspect Configuration
   ObjectB                                  ObjectD
   methodA()                                methodA()
   .                                        .
   .                                        .
   methodN()                                methodN()




                                  www.rajkrrsingh.blogspot.com
Aspect Oriented Programming(AOP)
Complements OO programming

Aspect Oriented Programming entails breaking down program logic into dist
 parts called so-called concerns

Cross-cutting concerns are conceptually separate from the application's
 business logic, e.g. ogging, auditing, declarative transactions, security, and
 caching etc

Spring AOP module provides interceptors to intercept an application,
 for example, when a method is executed, you can add extra functionality
 before or after the method execution.




                                            www.rajkrrsingh.blogspot.com
Aspect Oriented Programming(AOP)
Components of AOP
   Aspect – unit of modularity for crosscutting concerns

   Join point – well-defined points in the program flow

   Pointcut – join point queries where advice executes

   Advice – the block of code that runs based on the pointcut definition

   Weaving – can be done at runtime or compile time.
   Inserts the advice (crosscutting concerns) into the code (core concerns).




                                          www.rajkrrsingh.blogspot.com
Setting up AOP Environment in Eclipse
AOP Dependencies
   AspectJ: http://www.eclipse.org/aspectj/downloads.php
   AOP Alliance: http://aopalliance.sourceforge.net/
   CGILIB: http://cglib.sourceforge.net/
   Spring 3 ASM: http://asm.ow2.org/



   Examples…..




                                     www.rajkrrsingh.blogspot.com
Spring DAO and ORM
 Built in code templates that support JDBC, Hibernate, JDO,
and iBatis SQL Maps

Simplifies data access coding by reducing redundant code and
helps avoid common errors.

 Alleviates opening and closing connections in your DAO code.

No more ThreadLocal or passing Connection/Session objects.

Transaction management is handled by a wired bean

You are dropped into the template with the resources you need
for data access – Session, PreparedStatement, etc.

Optional separate JDBC framework

                                     www.rajkrrsingh.blogspot.com
JdbcTemplate
Central class in the JDBC core package

Handles the creation and release of resources.

Executes the core JDBC workflow like statement creation
and
Execution

 Executes
       – SQL queries
       – update statements
       – stored procedure calls
       – iteration over ResultSets
       – extraction of returned parameter values.

Also catches JDBC exceptions

                                      www.rajkrrsingh.blogspot.com
DataSource Configuration




                      www.rajkrrsingh.blogspot.com
Spring ORM : Working with Hibernate




                      www.rajkrrsingh.blogspot.com
Spring ORM : Working with Hibernate




                      www.rajkrrsingh.blogspot.com
Q&A




      www.rajkrrsingh.blogspot.com
Thanks


if you have any query concerns
            write to me
                 on
     rajkrrsingh@gmail.com




                    www.rajkrrsingh.blogspot.com

More Related Content

What's hot

What's hot (20)

Spring Boot Tutorial
Spring Boot TutorialSpring Boot Tutorial
Spring Boot Tutorial
 
Introduction to spring boot
Introduction to spring bootIntroduction to spring boot
Introduction to spring boot
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Spring boot jpa
Spring boot jpaSpring boot jpa
Spring boot jpa
 
Spring annotation
Spring annotationSpring annotation
Spring annotation
 
Spring data jpa
Spring data jpaSpring data jpa
Spring data jpa
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - Core
 
Introduction to Spring Boot!
Introduction to Spring Boot!Introduction to Spring Boot!
Introduction to Spring Boot!
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introduction
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Java8 features
Java8 featuresJava8 features
Java8 features
 
Java spring framework
Java spring frameworkJava spring framework
Java spring framework
 
Spring boot
Spring bootSpring boot
Spring boot
 
Xke spring boot
Xke spring bootXke spring boot
Xke spring boot
 
Spring & hibernate
Spring & hibernateSpring & hibernate
Spring & hibernate
 
REST APIs with Spring
REST APIs with SpringREST APIs with Spring
REST APIs with Spring
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot Introduction
 
Hibernate Presentation
Hibernate  PresentationHibernate  Presentation
Hibernate Presentation
 
Workshop Spring - Session 1 - L'offre Spring et les bases
Workshop Spring  - Session 1 - L'offre Spring et les basesWorkshop Spring  - Session 1 - L'offre Spring et les bases
Workshop Spring - Session 1 - L'offre Spring et les bases
 

Viewers also liked

Promotion of a company
Promotion of a companyPromotion of a company
Promotion of a companySaji Thomas
 
Spring orm notes_by_soma_sekhar_reddy_javabynataraj
Spring orm notes_by_soma_sekhar_reddy_javabynatarajSpring orm notes_by_soma_sekhar_reddy_javabynataraj
Spring orm notes_by_soma_sekhar_reddy_javabynatarajSatya Johnny
 
JSR 168 Portal - Overview
JSR 168 Portal - OverviewJSR 168 Portal - Overview
JSR 168 Portal - OverviewVinay Kumar
 
Spring core module
Spring core moduleSpring core module
Spring core moduleRaj Tomar
 
Incorporation of Company in India
Incorporation of Company in IndiaIncorporation of Company in India
Incorporation of Company in IndiaRitambhara Agrawal
 
Steps for Incorporation of a Company in India
Steps for Incorporation of a Company in IndiaSteps for Incorporation of a Company in India
Steps for Incorporation of a Company in IndiaRayvat Accounting
 
Incorporation of companies
Incorporation of companiesIncorporation of companies
Incorporation of companiesAltacit Global
 
Incorporation Powerpoint
Incorporation PowerpointIncorporation Powerpoint
Incorporation Powerpointmarkklein57
 
Getting Started with Spring Framework
Getting Started with Spring FrameworkGetting Started with Spring Framework
Getting Started with Spring FrameworkEdureka!
 
incorporation of company
 incorporation of company incorporation of company
incorporation of companyAccuprosys
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring FrameworkDineesha Suraweera
 
Incorporation of company in india
Incorporation of company in indiaIncorporation of company in india
Incorporation of company in indiamschhajedmarkting
 
1 promotion & incorporation of a company
1 promotion & incorporation of a company1 promotion & incorporation of a company
1 promotion & incorporation of a companyRamandeep Sidhu
 
Ppt on incorporation of company as per new company act, 2013 (updated)
Ppt on incorporation of company as per new company act, 2013 (updated)Ppt on incorporation of company as per new company act, 2013 (updated)
Ppt on incorporation of company as per new company act, 2013 (updated)Sandeep Kumar
 
Formation of companies
Formation of companiesFormation of companies
Formation of companiesNitin Patil
 
Formation of a company
Formation of a companyFormation of a company
Formation of a companyguptakanika16
 

Viewers also liked (19)

Promotion of a company
Promotion of a companyPromotion of a company
Promotion of a company
 
Spring orm notes_by_soma_sekhar_reddy_javabynataraj
Spring orm notes_by_soma_sekhar_reddy_javabynatarajSpring orm notes_by_soma_sekhar_reddy_javabynataraj
Spring orm notes_by_soma_sekhar_reddy_javabynataraj
 
JSR 168 Portal - Overview
JSR 168 Portal - OverviewJSR 168 Portal - Overview
JSR 168 Portal - Overview
 
Spring framework part 2
Spring framework  part 2Spring framework  part 2
Spring framework part 2
 
Spring core module
Spring core moduleSpring core module
Spring core module
 
Incorporation of Company in India
Incorporation of Company in IndiaIncorporation of Company in India
Incorporation of Company in India
 
Steps for Incorporation of a Company in India
Steps for Incorporation of a Company in IndiaSteps for Incorporation of a Company in India
Steps for Incorporation of a Company in India
 
Incorporation of companies
Incorporation of companiesIncorporation of companies
Incorporation of companies
 
Incorporation Powerpoint
Incorporation PowerpointIncorporation Powerpoint
Incorporation Powerpoint
 
Getting Started with Spring Framework
Getting Started with Spring FrameworkGetting Started with Spring Framework
Getting Started with Spring Framework
 
incorporation of company
 incorporation of company incorporation of company
incorporation of company
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
Incorporation of company in india
Incorporation of company in indiaIncorporation of company in india
Incorporation of company in india
 
1 promotion & incorporation of a company
1 promotion & incorporation of a company1 promotion & incorporation of a company
1 promotion & incorporation of a company
 
Ppt on incorporation of company as per new company act, 2013 (updated)
Ppt on incorporation of company as per new company act, 2013 (updated)Ppt on incorporation of company as per new company act, 2013 (updated)
Ppt on incorporation of company as per new company act, 2013 (updated)
 
Formation of companies
Formation of companiesFormation of companies
Formation of companies
 
Promotion
PromotionPromotion
Promotion
 
Formation of a company
Formation of a companyFormation of a company
Formation of a company
 
Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 

Similar to Spring framework

Java Spring framework, Dependency Injection, DI, IoC, Inversion of Control
Java Spring framework, Dependency Injection, DI, IoC, Inversion of ControlJava Spring framework, Dependency Injection, DI, IoC, Inversion of Control
Java Spring framework, Dependency Injection, DI, IoC, Inversion of ControlArjun Thakur
 
Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2javatrainingonline
 
Spring IOC and DAO
Spring IOC and DAOSpring IOC and DAO
Spring IOC and DAOAnushaNaidu
 
Spring (1)
Spring (1)Spring (1)
Spring (1)Aneega
 
Spring Fa Qs
Spring Fa QsSpring Fa Qs
Spring Fa Qsjbashask
 
Spring training
Spring trainingSpring training
Spring trainingshah_d_p
 
Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans Hitesh-Java
 
Introduction to Spring sec1.pptx
Introduction to Spring sec1.pptxIntroduction to Spring sec1.pptx
Introduction to Spring sec1.pptxNourhanTarek23
 
Session 43 - Spring - Part 1 - IoC DI Beans
Session 43 - Spring - Part 1 - IoC DI BeansSession 43 - Spring - Part 1 - IoC DI Beans
Session 43 - Spring - Part 1 - IoC DI BeansPawanMM
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applicationshchen1
 

Similar to Spring framework (20)

Java Spring framework, Dependency Injection, DI, IoC, Inversion of Control
Java Spring framework, Dependency Injection, DI, IoC, Inversion of ControlJava Spring framework, Dependency Injection, DI, IoC, Inversion of Control
Java Spring framework, Dependency Injection, DI, IoC, Inversion of Control
 
Spring Basics
Spring BasicsSpring Basics
Spring Basics
 
Signal Framework
Signal FrameworkSignal Framework
Signal Framework
 
Java J2EE Interview Question Part 2
Java J2EE Interview Question Part 2Java J2EE Interview Question Part 2
Java J2EE Interview Question Part 2
 
Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2
 
Spring IOC and DAO
Spring IOC and DAOSpring IOC and DAO
Spring IOC and DAO
 
Spring User Guide
Spring User GuideSpring User Guide
Spring User Guide
 
Spring (1)
Spring (1)Spring (1)
Spring (1)
 
Spring Fa Qs
Spring Fa QsSpring Fa Qs
Spring Fa Qs
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Spring training
Spring trainingSpring training
Spring training
 
Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans
 
Spring Basics
Spring BasicsSpring Basics
Spring Basics
 
Introduction to Spring sec1.pptx
Introduction to Spring sec1.pptxIntroduction to Spring sec1.pptx
Introduction to Spring sec1.pptx
 
Session 43 - Spring - Part 1 - IoC DI Beans
Session 43 - Spring - Part 1 - IoC DI BeansSession 43 - Spring - Part 1 - IoC DI Beans
Session 43 - Spring - Part 1 - IoC DI Beans
 
Java spring ppt
Java spring pptJava spring ppt
Java spring ppt
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Spring
SpringSpring
Spring
 
Spring 2
Spring 2Spring 2
Spring 2
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applications
 

Recently uploaded

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Recently uploaded (20)

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Spring framework

  • 1. Workshop of Spring Application Framework at Capegemini Presented By Rajkumar Singh www.rajkrrsingh.blogspot.com
  • 2. Agenda Introduction Spring Architecture Spring Beans Spring IOC Setting up Spring Environment Beans Life cycles Spring DAO Spring ORM Spring AOP Q&A www.rajkrrsingh.blogspot.com
  • 3. Introduction Spring framework was initially written by Rod Johnson and was first released under the Apache 2.0 license in June 2003. Primary purpose is to reduce the dependencies(loose couple) Spring deliver many significant benefits to the developers reducing development effort and cost while improving test coverage and quality Handle the infrastructure so that developer can focus on the development only Enables you to build application from POJOs Spring does not recreate all the framework but make use of the existing one like ORM,logging,JEE framework. www.rajkrrsingh.blogspot.com
  • 4. What Spring Offers Dependency Injection Aspect Oriented Programming (AOP) Portable Serives ORM DAO MVC www.rajkrrsingh.blogspot.com
  • 5. Application Layering Presentation Layer Spring MVC Spring Web Service Layer Gateway to expose business logic to the outside world Persistence Layer Not well defined in many applications today or tightly coupled in an inappropriate layer. JDBC ORM Manages ‘container level services’ Eg. transactions, security, data access logic, and manipulates domain objects Domain Layer POJOs www.rajkrrsingh.blogspot.com
  • 6. Spring Architecture www.rajkrrsingh.blogspot.com
  • 7. Spring Architecture Core & Beans: Provides fundamental functionality & Dependency Injection features. Primary component is the BeanFactory (Factory pattern ) The Context module Builds on the base modules. Access objects in a framework-style manner similar to a JNDI registry. Also supports Java EE features such as EJB, JMX ,and basic remoting. The ApplicationContext interface is the focal point of the module. The Expression Language module Provides a powerful expression language for querying and manipulating an object graph at runtime. www.rajkrrsingh.blogspot.com
  • 8. Spring Architecture The JDBC module a JDBC-abstraction layer that removes tedious JDBC coding, parsing of database-vendor specific error codes. The ORM module integration layers for ORM APIs, including JPA, JDO, Hibernate, & iBatis. The OXM module supports Object/XML mapping implementations for JAXB, Castor, XMLBeans, JiBX and X The JMS Module contains features for producing and consuming messages. The Transaction module supports programmatic and declarative transaction management www.rajkrrsingh.blogspot.com
  • 9. Spring Architecture Spring's Web module provides basic web-oriented integration features (multipart file-upload) initialization of the IoC container using servlet listeners Web Servlet Spring's model-view-controller (MVC) The Web-Struts module contains Support classes for integrating a classic Struts web tier within a Spring application. The Web-Portlet module provides the MVC implementation to be used in a portlet environment www.rajkrrsingh.blogspot.com
  • 10. Spring IOC Inversion of control is all about Object Dependencies Traditional Object Creation Approach Direct Object Creation new Employee() FactoryImplementation EmpFactory().getEmp() JNDI Services naming.lookup() Spring Approach Spring Container creates all the objects, wires them together by setting the necessary properties, and determines when methods will be invoked. www.rajkrrsingh.blogspot.com
  • 11. Spring Container Fundamental part of the framework. Two packages provides the basis for the Spring Framework's IoC container. – org.springframework.beans – org.springframework.context BeanFactory provides the configuration framework and basic functionality, and the ApplicationContext adds more enterprise-specific functionality. The org.springframework.beans.factory.BeanFactory is the actual representati the Spring IoC container Responsible for containing and managing beans. The most commonly used BeanFactory implementation is the XmlBeanFactor The XmlBeanFactory takes XML configuration metadata and uses it to create configured system or application. www.rajkrrsingh.blogspot.com
  • 12. Spring Container The interface org.springframework.context.ApplicationContext represents the Spring IoC container and is responsible for instantiating, configuring, and assembling the beans. The container gets its instructions by reading configuration metadata. The configuration metadata is represented in XML and Java annotations Several implementations of the ApplicationContext interface are supplied with Spring. In standalone applications it is common to create an instance of ClassPathXmlApplicationContext or FileSystemXmlApplicationContext www.rajkrrsingh.blogspot.com
  • 13. Ways To Initialize Spring Container www.rajkrrsingh.blogspot.com
  • 14. Type of Dependency Injection Setter method Injection Constructor Injection Configuration File Injection www.rajkrrsingh.blogspot.com
  • 15. Examples for dependency Injection Setup Enviornment for Spring Install JAVA If you are running Windows and installed the JDK in C:jdk1.6.0_15, you would have to put the following line in your C:autoexec.bat file. set PATH=C:jdk1.6.0_15bin;%PATH% set JAVA_HOME=C:jdk1.6.0_15 Unix (Solaris, Linux, etc.), if the SDK is installed in /usr/local/jdk1.6.0_15 and you use the C shell, you would put the following into your .cshrc file. setenv PATH /usr/local/jdk1.6.0_15/bin:$PATH setenv JAVA_HOME /usr/local/jdk1.6.0_15 Download Spring Jars Install Common Logging Download Apache Commons Logging API from http://commons.apache.org/logging Install Eclipse and setup for Spring www.rajkrrsingh.blogspot.com
  • 16. Reference to Other Beans (DI) www.rajkrrsingh.blogspot.com
  • 17. Some More Example Alias Import Initialize bean static Bean Factory Method <bean id="mp3ply" class="com.test.Mp3Player" factory-method="factoryMethod"> </bean> public Class Mp3Player{ private static Mp3Player mp3ply = new Mp3Player(); public Mp3Player(){} public static Mp3Player factoryMethod(){ return mp3ply; } } www.rajkrrsingh.blogspot.com
  • 18. Some More Example Collections Inner Beans Autowire Namespaces Depends Upon ApplicationContextAware interface BeanNameAware interface InitializingBean interface www.rajkrrsingh.blogspot.com
  • 19. Beans Scopes Scope Description This scopes the bean definition to a single instance per singleton Spring IoC container (default). This scopes a single bean definition to have any number of prototype object instances. This scopes a bean definition to an HTTP request. Only request valid in the context of a web-aware Spring ApplicationContext. This scopes a bean definition to an HTTP session. Only session valid in the context of a web-aware Spring ApplicationContext. This scopes a bean definition to a global HTTP session. global-session Only valid in the context of a web-aware Spring ApplicationContext. www.rajkrrsingh.blogspot.com
  • 20. Beans Life Cycle  When a bean is instantiated, it may be required to perform some initializatio to get it into a usable state When the bean is no longer required and is removed from the container, some cleanup may be required. Register the shutdown hook for the ApplicationContext Callback Methods: Init and destroy methods The init-method attribute specifies a method that is to be called on the bean immediately upon instantiation destroy-method specifies a method that is called just before a bean is removed from the container. www.rajkrrsingh.blogspot.com
  • 21. Beans Post Processors  The BeanPostProcessor interface defines callback methods that you can implement to provide your own instantiation logic You can also implement some custom logic after the Spring container finishe instantiating, configuring, and initializing a bean by impl PostProcessors You can have multiple Bean Post processor and can define their order of execution ApplicationContext automatically detects any bean as a post processor who implements BeanPostProcessor Interface www.rajkrrsingh.blogspot.com
  • 22. Aspect Oriented Programming(AOP) ObjectA ObjectC methodA() methodA() . . . . methodN() methodN()v Logging Security Aspect Configuration ObjectB ObjectD methodA() methodA() . . . . methodN() methodN() www.rajkrrsingh.blogspot.com
  • 23. Aspect Oriented Programming(AOP) Complements OO programming Aspect Oriented Programming entails breaking down program logic into dist parts called so-called concerns Cross-cutting concerns are conceptually separate from the application's business logic, e.g. ogging, auditing, declarative transactions, security, and caching etc Spring AOP module provides interceptors to intercept an application, for example, when a method is executed, you can add extra functionality before or after the method execution. www.rajkrrsingh.blogspot.com
  • 24. Aspect Oriented Programming(AOP) Components of AOP Aspect – unit of modularity for crosscutting concerns Join point – well-defined points in the program flow Pointcut – join point queries where advice executes Advice – the block of code that runs based on the pointcut definition Weaving – can be done at runtime or compile time. Inserts the advice (crosscutting concerns) into the code (core concerns). www.rajkrrsingh.blogspot.com
  • 25. Setting up AOP Environment in Eclipse AOP Dependencies AspectJ: http://www.eclipse.org/aspectj/downloads.php AOP Alliance: http://aopalliance.sourceforge.net/ CGILIB: http://cglib.sourceforge.net/ Spring 3 ASM: http://asm.ow2.org/ Examples….. www.rajkrrsingh.blogspot.com
  • 26. Spring DAO and ORM  Built in code templates that support JDBC, Hibernate, JDO, and iBatis SQL Maps Simplifies data access coding by reducing redundant code and helps avoid common errors.  Alleviates opening and closing connections in your DAO code. No more ThreadLocal or passing Connection/Session objects. Transaction management is handled by a wired bean You are dropped into the template with the resources you need for data access – Session, PreparedStatement, etc. Optional separate JDBC framework www.rajkrrsingh.blogspot.com
  • 27. JdbcTemplate Central class in the JDBC core package Handles the creation and release of resources. Executes the core JDBC workflow like statement creation and Execution  Executes – SQL queries – update statements – stored procedure calls – iteration over ResultSets – extraction of returned parameter values. Also catches JDBC exceptions www.rajkrrsingh.blogspot.com
  • 28. DataSource Configuration www.rajkrrsingh.blogspot.com
  • 29. Spring ORM : Working with Hibernate www.rajkrrsingh.blogspot.com
  • 30. Spring ORM : Working with Hibernate www.rajkrrsingh.blogspot.com
  • 31. Q&A www.rajkrrsingh.blogspot.com
  • 32. Thanks if you have any query concerns write to me on rajkrrsingh@gmail.com www.rajkrrsingh.blogspot.com