Introduction to
Spring Framework
CSE424: Aspect and Service Oriented Software Systems
Content :
 What is Spring Framework?
 Key Features of Spring Framework
 Advantages of Spring Framework.
Dependency Injection and Inversion of Control
 Aspect oriented Programming
 Spring Modules
 Spring Security
 Spring Testing
What is Spring Framework ?
 Spring is the most popular application development framework
for enterprise java.
 Open source java platform since 2003.
 Spring support all major application servers and JEE Standards.
 Spring handlers the infrastructure so you can focus on
application.
Dependency Injection
Introduction to Concept
 The technology that actually defines spring (Heart of Spring).
 Dependency Injection helps us to keep our classes or independent as possible.
Increase reuse by applying low coupling.
Easy Testing.
More Understandable.
Dependency Injection
Introduction to Concept
An injection is the passing of dependency (a service) to a dependent
object (a client).
Passing the service to the client, rather than allowing a client to build
or find the service, is the fundamental requirement of the pattern.
“Dependency Injection is a pattern where the container passes objects by name to
other objects, via either constructors, properties or factory methods.”
Dependency Injection
Relationship between DI and Inversion of Control
In software engineering, inversion of Control (IoC) describes a design in
which custom-written portions if a computer program receive the flow of
control from a generic reusable library.
The Inversion of Control (Ioc) is a general concepts, and it can be expressed in many
different ways and dependency Injection is merely one concrete example of
Inversion of Control.
Dependency Injection
Ioc Container
 The spring container (IoC Container) is at the core of the Spring
Framework.
 The Container will create the objects, wire them together, configure
them, and manage their complete lifecycle from creation till
destruction.
Dependency Injection
Ioc Container
 The Container gets its instructions on
what objects to instantiate, configure,
and assemble by reading configuration
metadata provided.
 The configuration metadata can be
represented either by;
XML,
Java annotations,
Java Code.
Dependency Injection
Code Example
Dependency Injection
Bean Scopes
Scope Description
Singleton (Default) Scopes a single bean definition to a single object instance per spring
IoC Container.
Prototype Scopes a single bean definition to any number of objects instances.
Spring ApplicationContext
 A Spring ApplicationContext allows you to get access
to the objects that are configured in a BeanFactory in
a framework manner.
 ApplicationContext extends BeanFactory
 Adds services such as international messaging capabilities.
 Add the ability to load file resources in a generic fashion.
 Several ways to configure a context:
 XMLWebApplicationContext – Configuration for a web
application.
 ClassPathXMLApplicationContext – standalone XML
application context
 FileSystemXmlApplicationContext
Aspects Oriented Programming (Aop)
Spring AoP
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.
Spring AoP's approach to AoP differs from that of most AoP Frameworks. The aim is to
provide a close integration between AoP implementation and IoC, not to provide the
most complete AoP implementation.
Spring Framework’s AoP functionality is normally in conjunction with the Spring IoC
Container. Aspects are configured using normal bean definition syntax.
Spring Modules
 The Spring Framework consists
of features Organizes into about
20 modules.
 These modules are grouped into
Cross containers, Data
Access/Integration, Web,
AoP(Aspect Oriented
Programming), Instrumentation,
and Test.
Spring Modules
The building blocks described
previously make Spring a logical
choice in many scenarios, from
applets to full-fledged enterprise
applications that use Springs
transaction management
functionality and web framework
integration.
Spring Modules
Spring Projects
Spring XD
Spring Data
Spring Integration
Spring Batch
Spring Security
Spring Cloud
Spring AMQD
Spring Grails
Spring Mobile
Spring Social
Spring for Android
Spring Web Flow
Spring LDAP
Spring Groovy
Spring Hateoas
Spring Security QAuth
Spring Security
Spring Security is a framework that focuses on providing both
Authentication and Authorization to Java Applications.
Features:
Comprehensive and extensible support for both Authentication and
Authorization.
Protection against attacks like session fixation, clickjacking,
cross site request forgery, etc.
Servlet API Integration.
Optional integration with Spring web MVC.
Spring Test
 Spring Test Framework Supports:
Unit testing with mock object.
Easy unit testing for controllers.
IoC Container to create dependencies for Integration Testing.
Transaction management for Integration Testing.
Third party frameworks like JUnit, TestNG, Mockito.
Advantages using Spring Framework
Open Source.
Lightweight and fast.
Modular structure.
Low coupling thanks to Dependency Injection.
Reusable Software.
Stable and lots of resource.
AoP Support.
Projector that make our life easier like Spring Security.
Setting up your environment
What is Maven?
 A Java project management and integration build tool.
 Based on the concept of XML Project Object Model (POM).
 Originally developed for building Turbine.
 A small core with numerous plugins (in Jelly).
Maven Architecture Overview
Build System
Local
Repo
Remote
Repo
maven
project.xml (pom)
maven.xml (goals) http
Site
Maven Artifact Repository
The Most Important Feature
 Remote Repository
…
<dependencies>
<dependency>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
<version>2.5.1</version>
<type>jar</type>
</dependency>
…
</dependencies>
…
${mave.repo.remote}/<groupId>/<type>s/<artifactId>-<version>.<type>
- repository
- […]
- xalan
- jars
- xalan-2.5.0.jar
- xalan-2.5.1.jar
- […]
- […]
Getting started
 Download Eclipse IDE
 Open a new Maven project
Getting started
 Download Eclipse IDE
 Open a new Maven project
Getting started
 Download Eclipse IDE
 Open a new Maven project
 After pressing finish, you download of
the repositories will start (it may take
some minutes if the internet speed is
slow)
Getting started
 This is the main project and the most important file is pom.xml
Getting started
 This is the main project and the most important file is pom.xml
Getting started
 POM.xml file
In this part, we are going to
download the spring
framework
Getting started
 Setting the dependencies within the pom.xml file
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>6.0.5</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>6.0.5</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>6.0.5</version>
</dependency>
Getting started
 To start our first Aspect project we need:
1. Dependent class files
2. A new xml file to remove the dependency
 Bean dependencies:
 In a new xml file add the beans
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/co
ntext"
xsi:schemaLocation="http://www.springframework.org/sche
ma/beans
http://www.springframework.org/schema/beans/spring-
beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-
context.xsd">

Introduction to Spring sec1.pptx

  • 1.
    Introduction to Spring Framework CSE424:Aspect and Service Oriented Software Systems
  • 2.
    Content :  Whatis Spring Framework?  Key Features of Spring Framework  Advantages of Spring Framework. Dependency Injection and Inversion of Control  Aspect oriented Programming  Spring Modules  Spring Security  Spring Testing
  • 3.
    What is SpringFramework ?  Spring is the most popular application development framework for enterprise java.  Open source java platform since 2003.  Spring support all major application servers and JEE Standards.  Spring handlers the infrastructure so you can focus on application.
  • 4.
    Dependency Injection Introduction toConcept  The technology that actually defines spring (Heart of Spring).  Dependency Injection helps us to keep our classes or independent as possible. Increase reuse by applying low coupling. Easy Testing. More Understandable.
  • 5.
    Dependency Injection Introduction toConcept An injection is the passing of dependency (a service) to a dependent object (a client). Passing the service to the client, rather than allowing a client to build or find the service, is the fundamental requirement of the pattern. “Dependency Injection is a pattern where the container passes objects by name to other objects, via either constructors, properties or factory methods.”
  • 6.
    Dependency Injection Relationship betweenDI and Inversion of Control In software engineering, inversion of Control (IoC) describes a design in which custom-written portions if a computer program receive the flow of control from a generic reusable library. The Inversion of Control (Ioc) is a general concepts, and it can be expressed in many different ways and dependency Injection is merely one concrete example of Inversion of Control.
  • 7.
    Dependency Injection Ioc Container The spring container (IoC Container) is at the core of the Spring Framework.  The Container will create the objects, wire them together, configure them, and manage their complete lifecycle from creation till destruction.
  • 8.
    Dependency Injection Ioc Container The Container gets its instructions on what objects to instantiate, configure, and assemble by reading configuration metadata provided.  The configuration metadata can be represented either by; XML, Java annotations, Java Code.
  • 9.
  • 10.
    Dependency Injection Bean Scopes ScopeDescription Singleton (Default) Scopes a single bean definition to a single object instance per spring IoC Container. Prototype Scopes a single bean definition to any number of objects instances.
  • 11.
    Spring ApplicationContext  ASpring ApplicationContext allows you to get access to the objects that are configured in a BeanFactory in a framework manner.  ApplicationContext extends BeanFactory  Adds services such as international messaging capabilities.  Add the ability to load file resources in a generic fashion.  Several ways to configure a context:  XMLWebApplicationContext – Configuration for a web application.  ClassPathXMLApplicationContext – standalone XML application context  FileSystemXmlApplicationContext
  • 12.
    Aspects Oriented Programming(Aop) Spring AoP 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. Spring AoP's approach to AoP differs from that of most AoP Frameworks. The aim is to provide a close integration between AoP implementation and IoC, not to provide the most complete AoP implementation. Spring Framework’s AoP functionality is normally in conjunction with the Spring IoC Container. Aspects are configured using normal bean definition syntax.
  • 13.
    Spring Modules  TheSpring Framework consists of features Organizes into about 20 modules.  These modules are grouped into Cross containers, Data Access/Integration, Web, AoP(Aspect Oriented Programming), Instrumentation, and Test.
  • 14.
    Spring Modules The buildingblocks described previously make Spring a logical choice in many scenarios, from applets to full-fledged enterprise applications that use Springs transaction management functionality and web framework integration.
  • 15.
    Spring Modules Spring Projects SpringXD Spring Data Spring Integration Spring Batch Spring Security Spring Cloud Spring AMQD Spring Grails Spring Mobile Spring Social Spring for Android Spring Web Flow Spring LDAP Spring Groovy Spring Hateoas Spring Security QAuth
  • 16.
    Spring Security Spring Securityis a framework that focuses on providing both Authentication and Authorization to Java Applications. Features: Comprehensive and extensible support for both Authentication and Authorization. Protection against attacks like session fixation, clickjacking, cross site request forgery, etc. Servlet API Integration. Optional integration with Spring web MVC.
  • 17.
    Spring Test  SpringTest Framework Supports: Unit testing with mock object. Easy unit testing for controllers. IoC Container to create dependencies for Integration Testing. Transaction management for Integration Testing. Third party frameworks like JUnit, TestNG, Mockito.
  • 18.
    Advantages using SpringFramework Open Source. Lightweight and fast. Modular structure. Low coupling thanks to Dependency Injection. Reusable Software. Stable and lots of resource. AoP Support. Projector that make our life easier like Spring Security.
  • 19.
    Setting up yourenvironment What is Maven?  A Java project management and integration build tool.  Based on the concept of XML Project Object Model (POM).  Originally developed for building Turbine.  A small core with numerous plugins (in Jelly).
  • 20.
    Maven Architecture Overview BuildSystem Local Repo Remote Repo maven project.xml (pom) maven.xml (goals) http Site
  • 21.
    Maven Artifact Repository TheMost Important Feature  Remote Repository … <dependencies> <dependency> <groupId>xalan</groupId> <artifactId>xalan</artifactId> <version>2.5.1</version> <type>jar</type> </dependency> … </dependencies> … ${mave.repo.remote}/<groupId>/<type>s/<artifactId>-<version>.<type> - repository - […] - xalan - jars - xalan-2.5.0.jar - xalan-2.5.1.jar - […] - […]
  • 22.
    Getting started  DownloadEclipse IDE  Open a new Maven project
  • 23.
    Getting started  DownloadEclipse IDE  Open a new Maven project
  • 24.
    Getting started  DownloadEclipse IDE  Open a new Maven project  After pressing finish, you download of the repositories will start (it may take some minutes if the internet speed is slow)
  • 25.
    Getting started  Thisis the main project and the most important file is pom.xml
  • 26.
    Getting started  Thisis the main project and the most important file is pom.xml
  • 27.
    Getting started  POM.xmlfile In this part, we are going to download the spring framework
  • 28.
    Getting started  Settingthe dependencies within the pom.xml file <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>6.0.5</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>6.0.5</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>6.0.5</version> </dependency>
  • 29.
    Getting started  Tostart our first Aspect project we need: 1. Dependent class files 2. A new xml file to remove the dependency  Bean dependencies:  In a new xml file add the beans <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/co ntext" xsi:schemaLocation="http://www.springframework.org/sche ma/beans http://www.springframework.org/schema/beans/spring- beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring- context.xsd">