Time Series Foundation Models - current state and future directions
Spring presentecion isil
1. Spring Framework
Lic. Jorge Guerra Guerra
Docente ISIL
UNMSM OSUM Leader
2. The Spring Framework: Overview
Topics:
What is Spring?
Spring modules
Why use Spring
Dependency injection / IOC in detail
Lab Work
Get to know Spring Framework
2
3. 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.
Get to know Spring Framework
3
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
4
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
5
6. How does the Spring Framework looks like?
Get to know Spring Framework
6
7. 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.
Get to know Spring Framework
7
8. 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.
Get to know Spring Framework
8
9. What does Spring Framework Offers: Summary
Inversion of Control container: configuration of application components and lifecycle management of Java
objects
Aspect-oriented programming: enables implementation of cross-cutting routines
Data access: working with relational database management systems on the Java platform using JDBC and
object-relational mapping tools
Transaction management: unifies several transaction management APIs and coordinates transactions for
Java objects
Model-view-controller: a HTTP and Servlet-based framework providing hooks for extension and
customization
Remote 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 module
Batch processing: a framework for high-volume processing featuring reusable functions including
logging/tracing, transaction management, job processing statistics, job restart, skip, and resource management
Authentication 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 JMX
Messaging: configurative registration of message listener objects for transparent message consumption from
message queues via JMS, improvement of message sending over standard JMS APIs
Testing: support classes for writing unit tests and integration tests
Get to know Spring Framework
9
10. 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!
Get to know Spring Framework
10
11. 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.)
Get to know Spring Framework
11
12. Are there any benefits of using spring?
Pure Java
Founded on POJO-based development
Ordinary Java classes that follow no special APIs
Non-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
Get to know Spring Framework
12
13. Are there any benefits of using spring?
Helps only where needed
Modularity 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 Available
Spring 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 ;)
Get to know Spring Framework
13
14. What does Spring provide?
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
Get to know OneNote
14
15. Inversión de control
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 dependencias
Ventajas
Inyección por setter, por
constructor, por método
BeanFactory, ApplicationContext
Get to know Spring Framework
15
16. 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
Get to know Spring Framework
16
18. 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
Get to know Spring Framework
18
19. Spring Hello World: Create POJO
• Create a interface HelloWorld
•
public interface HelloWorld {
public void execute();
}
• Create an implementing class HelloWorldImpl
public class HelloWorldImpl
implements HelloWorld {
public void execute() {
System.out.println("Hello World!");
}
}
Get to know Spring Framework
19
20. 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/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="helloWorld"
class="HelloWorldImpl" />
</beans>
Get to know Spring Framework
20
21. 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();
}
}
Get to know Spring Framework
21
22. Spring Hello World: Output
Run the main class and you shall see “Hello World” printed.
Get to know Spring Framework
22
23. Spring Reference
http://www.springsource.org/
Top-level documentation page
http://www.springframework.org/documentation
• Wiki
http://opensource.atlassian.com/confluence/spring
• Forum
http://forum.springframework.org
• Books
Spring Recipes. APress 2008
Spring in Action. Manning 2007
Agile Java Development with Spring, Hibernate and
Get to know Spring Framework
23