SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

Tendances (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 introduction
Spring introductionSpring introduction
Spring introduction
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - Core
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Java spring framework
Java spring frameworkJava spring framework
Java spring framework
 
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 Boot
Spring BootSpring Boot
Spring Boot
 
Spring boot
Spring bootSpring boot
Spring boot
 
Spring boot
Spring bootSpring boot
Spring boot
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
 
Spring Boot Tutorial
Spring Boot TutorialSpring Boot Tutorial
Spring Boot Tutorial
 
Spring Core
Spring CoreSpring Core
Spring Core
 
Spring MVC
Spring MVCSpring MVC
Spring MVC
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Java J2EE
Java J2EEJava J2EE
Java J2EE
 
Spring MVC 3.0 Framework
Spring MVC 3.0 FrameworkSpring MVC 3.0 Framework
Spring MVC 3.0 Framework
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot Introduction
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework
 
Spring framework in depth
Spring framework in depthSpring framework in depth
Spring framework in depth
 

En vedette

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
 
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
 

En vedette (18)

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
 
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
 

Similaire à Spring framework

Similaire à Spring framework (20)

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 (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 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
 
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
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
Spring training
Spring trainingSpring training
Spring training
 
Spring 3.1: a Walking Tour
Spring 3.1: a Walking TourSpring 3.1: a Walking Tour
Spring 3.1: a Walking Tour
 

Dernier

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 

Dernier (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

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