Spring presentecion isil

23
Spring Framework Lic. Jorge Guerra Guerra Docente ISIL UNMSM OSUM Leader

description

spring!!

Transcript of Spring presentecion isil

Page 1: Spring presentecion isil

Spring Framework

Lic. Jorge Guerra GuerraDocente ISIL

UNMSM OSUM Leader

Page 2: Spring presentecion isil

2Get to know Spring Framework

The Spring Framework: Overview

Topics:What is Spring? Spring modules Why use SpringDependency injection / IOC in detailLab Work

Page 3: Spring presentecion isil

3Get to know Spring Framework

What is Spring?

The Spring Framework is an open source application framework for the Java platform and .NET Framework (Spring.NET)

It is based on code published in Expert One-on-One J2EE

Design and Development by Rod Johnson (Wrox, 2002).

“Spring is an open source framework created to address the complexity of

enterprise application development. One of the chief advantages of the Spring framework is its layered architecture, which allows you to be selective about which of its components you use while also providing a cohesive framework for J2EE application development.

Page 4: Spring presentecion isil

4

Evolución de Spring

2002: Expert One-on-One J2EE Design and Development

2003: Nace como proyecto Open Source

2004: Spring 1.0

2006: Spring 2.0

2007: Spring 2.5

2008: SpringSource

2009: lo compra VMWare

Get to know OneNote

Page 5: Spring presentecion isil

5

Principios de Spring

Programación basada en POJOs

Ligero

Facilita las buenas prácticas de programación

Modelo de programación consistente

Facilita las pruebas

No invasivo

No reinventa la rueda

Get to know OneNote

Page 6: Spring presentecion isil

6Get to know Spring Framework

How does the Spring Framework looks like?

Page 7: Spring presentecion isil

7Get to know Spring Framework

How does the Spring Framework looks like?

Each of the modules (or components) that comprise the Spring framework can stand on its own or be implemented jointly with one or more of the others. The functionality of each component is as follows:

The core container: The core container provides the essential functionality of the Spring framework. A primary component of the core container is the BeanFactory, an implementation of the Factory pattern. The BeanFactory applies the Inversion of Control (IOC) pattern to separate an application's configuration and dependency specification from the actual application code.

Spring context: The Spring context is a configuration file that provides context information to the Spring framework. The Spring context includes enterprise services such as JNDI, EJB, e-mail, internalization, validation, and scheduling functionality.

Spring AOP: The Spring AOP module integrates aspect-oriented programming functionality directly into the Spring framework, through its configuration management feature. As a result you can easily AOP-enable any object managed by the Spring framework. The Spring AOP module provides transaction management services for objects in any Spring-based application. With Spring AOP you can incorporate declarative transaction management into your applications without relying on EJB components.

Page 8: Spring presentecion isil

8Get to know Spring Framework

How does the Spring Framework looks like?

Spring DAO: The Spring JDBC DAO abstraction layer offers a meaningful exception hierarchy for managing the exception handling and error messages thrown by different database vendors. The exception hierarchy simplifies error handling and greatly reduces the amount of exception code you need to write, such as opening and closing connections. Spring DAO's JDBC-oriented exceptions comply to its generic DAO exception hierarchy.

Spring ORM: The Spring framework plugs into several ORM frameworks to provide its Object Relational tool, including JDO, Hibernate, and iBatis SQL Maps. All of these comply to Spring's generic transaction and DAO exception hierarchies.

Spring Web module: The Web context module builds on top of the application context module, providing contexts for Web-based applications. As a result, the Spring framework supports integration with Jakarta Struts. The Web module also eases the tasks of handling multi-part requests and binding request parameters to domain objects.

Spring MVC framework: The MVC framework is a full-featured MVC implementation for building Web applications. The MVC framework is highly configurable via strategy interfaces and accommodates numerous view technologies including JSP, Velocity, Tiles, iText, and POI.

Page 9: Spring presentecion isil

9Get to know Spring Framework

What does Spring Framework Offers: Summary

Inversion of Control container: configuration of application components and lifecycle management of Java objectsAspect-oriented programming: enables implementation of cross-cutting routinesData access: working with relational database management systems on the Java platform using JDBC and object-relational mapping toolsTransaction management: unifies several transaction management APIs and coordinates transactions for Java objectsModel-view-controller: a HTTP and Servlet-based framework providing hooks for extension and customizationRemote Access framework: configurative RPC-style export and import of Java objects over networks supporting RMI, CORBA and HTTP-based protocols including web services (SOAP)Convention-over-configuration: a rapid application development solution for Spring-based enterprise applications is offered in the Spring Roo moduleBatch processing: a framework for high-volume processing featuring reusable functions including logging/tracing, transaction management, job processing statistics, job restart, skip, and resource managementAuthentication and authorization: configurable security processes that support a range of standards, protocols, tools and practices via the Spring Security sub-project (formerly Acegi).Remote Management: configurative exposure and management of Java objects for local or remote configuration via JMXMessaging: configurative registration of message listener objects for transparent message consumption from message queues via JMS, improvement of message sending over standard JMS APIsTesting: support classes for writing unit tests and integration tests

Page 10: Spring presentecion isil

10Get to know Spring Framework

Why use Spring?

Have you ever encountered these question?

• Cant’ I have a simpler solution?

• How can I handle my every changing requirements?

• How can be the architecture flexible?

• Can’t I have everything in components which can be verified independently?

• Can I make a plug and play software?

• How can the software components reusable and changeable?

• Should we use EJB? As it makes the product complex, unpredictable and un-maintainable, non-portable and everything is framework committed.

• …………….. And many more like these

SPRING IS THE ANSWER!

Page 11: Spring presentecion isil

11Get to know Spring Framework

Spring Framework’s Mission Statement

We believe that:• J2EE should be easier to use• It is best to program to interfaces, rather than classes. Spring reduces the

complexity cost of using interfaces to zero.• JavaBeans offer a great way of configuring applications.• OO design is more important than any implementation technology, such as J2EE.• Checked exceptions are overused in Java. A platform shouldn't force you to catch

exceptions you're unlikely to be able to recover from.• Testability is essential, and a platform such as Spring should help make your

code easier to test.

We aim that:• Spring should be a pleasure to use• Your application code should not depend on Spring APIs• Spring should not compete with good existing solutions, but should foster

integration. (For example, JDO, Toplink, and Hibernate are great O/R mapping solutions. We don't need to develop another one.)

Page 12: Spring presentecion isil

12Get to know Spring Framework

Are there any benefits of using spring?

Pure JavaFounded on POJO-based development

Ordinary Java classes that follow no special APIsNon-invasive for pre-existing POJOs

Rewards framework-independent business logic

Encourages new software to be written as POJOs

Results in highly portable, reusable, and verifiable software

Less Custom Code

Expand capabilities with less code

Extensive and tested service abstractions

Email, JMS, JMX, JSF, JDBC, etc…

Replaces generic corporate libraries

Mitigates custom integration activities

Consistency eases integration because

spring platform is easy to use

Turn-key solution

Spring components can be integrated quickly, with minimal effort and predictable results

Page 13: Spring presentecion isil

13Get to know Spring Framework

Are there any benefits of using spring?

Helps only where neededModularity allows only relevant components to be introduced into the application.

For instance choose one:

Spring BeanFactory

Spring JMX

Spring JDBC

Framework can be interfaced in deep or shallow layers.

Interfaces are consistent at each layer

Widely AvailableSpring is integrated into numerous frameworks

Broad adoption possible because the container is portable and lightweight

The container itself is designed as a POJO

Integration without third-party support

Performance overhead is rarely a consideration as it is not EJB ;)

Page 14: Spring presentecion isil

14

What does Spring provide?

Get to know OneNote

Lightweight container and framework

Most of your code will be unaware of the Spring framework

Use only the parts you of Spring you want

Manages dependencies between your objects

Encourages use of interfaces

Lessens “coupling” between objects

Cleaner separation of responsibilities

Put logic that applies to many objects in one single place

Separate the class’s core responsibility from other duties

Simplifies database integration

Spring JDBC

Hibernate

iBATIS

Java Persistence

Page 15: Spring presentecion isil

15

Inversión de control

Get to know Spring Framework

The IoC component of the Spring Framework addresses the enterprise concern of taking the classes, objects, and services that are to compose an application, by providing a formalized means of composing these various disparate components into a fully working application ready for use.

Inyección de dependenciasVentajasInyección por setter, por constructor, por métodoBeanFactory, ApplicationContext

Page 16: Spring presentecion isil

16Get to know Spring Framework

The Core Spring Module: Defining Beans and Dependency Injection

Topics:Setting bean properties

Supplying constructor arguments

Using factory methods

Dependency injection

Supplying other beans as properties or constructor args

Page 17: Spring presentecion isil

17

Spring Web Application

Get to know OneNote

Page 18: Spring presentecion isil

18Get to know Spring Framework

Spring Hello World: What will we do?

•Code a plain Java class model.– Use the interface pattern by coding a HelloWorld interface and a

HelloWorldImpl implementation• Configure the Spring IoC container.• Instantiate the Spring IoC container.• Acquire the object from the Spring IoC container.– The client must only have knowledge of the interface, HelloWorld

Page 19: Spring presentecion isil

19Get to know Spring Framework

Spring Hello World: Create POJO

• Create a interface HelloWorld•

public interface HelloWorld {

public void execute();

}

• Create an implementing class HelloWorldImplpublic class HelloWorldImpl

implements HelloWorld {

public void execute() {

System.out.println("Hello World!");

}

}

Page 20: Spring presentecion isil

20Get to know Spring Framework

Spring Hello World: Spring IOC Configuration

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<bean id="helloWorld"

class="HelloWorldImpl" />

</beans>

Page 21: Spring presentecion isil

21Get to know Spring Framework

Spring Hello World: Execute

import org.springframework.beans.factory.*;import org.springframework.context.support.*;public class Main{public static void main(String[] args) {

BeanFactory beanFactory = new ClassPathXmlApplicationContext(

"applicationContext.xml");

HelloWorld helloWorld = (HelloWorld) beanFactory.getBean("helloWorld");

helloWorld.execute();

}

}

Page 22: Spring presentecion isil

22Get to know Spring Framework

Spring Hello World: Output

Run the main class and you shall see “Hello World” printed.

Page 23: Spring presentecion isil

23

Spring Reference

http://www.springsource.org/

Top-level documentation page http://www.springframework.org/documentation

• Wikihttp://opensource.atlassian.com/confluence/spring

• Forumhttp://forum.springframework.org

• BooksSpring Recipes. APress 2008Spring in Action. Manning 2007Agile Java Development with Spring, Hibernate and

Get to know Spring Framework