introduction to the spring framework university of kansas january 2009 this presentation and example...
TRANSCRIPT
![Page 1: Introduction to the Spring Framework University of Kansas January 2009 This presentation and example application are available at](https://reader035.vdocuments.net/reader035/viewer/2022062713/56649ce15503460f949ab18b/html5/thumbnails/1.jpg)
Introduction to the Spring Introduction to the Spring FrameworkFrameworkUniversity of KansasJanuary 2009
This presentation and example application are available at http://www.brucephillips.name/spring
![Page 2: Introduction to the Spring Framework University of Kansas January 2009 This presentation and example application are available at](https://reader035.vdocuments.net/reader035/viewer/2022062713/56649ce15503460f949ab18b/html5/thumbnails/2.jpg)
ReferencesReferences◦ Spring documentation -
http://www.springsource.org/documentation ◦ Spring API -
http://static.springframework.org/spring/docs/2.5.x/api/index.html
◦ Introduction to the Spring Framework 2.5, by Rod Johnson (Originator of Spring) - http://www.theserverside.com/tt/articles/article.tss?l=IntrotoSpring25
◦ Spring in Action, 2nd Edition, Manning Publishing, August 2007
◦ Pro Spring 2.5, Apress Publishing, August 2008◦ Maven - http://maven.apache.org/◦ Maven -
http://books.sonatype.com/maven-book/index.html
![Page 3: Introduction to the Spring Framework University of Kansas January 2009 This presentation and example application are available at](https://reader035.vdocuments.net/reader035/viewer/2022062713/56649ce15503460f949ab18b/html5/thumbnails/3.jpg)
What is Spring?What is Spring?
◦ A Container Creates objects and makes them available to your application
◦ A Framework Provides an infrastructure of classes that make it easier to
accomplish tasks
![Page 4: Introduction to the Spring Framework University of Kansas January 2009 This presentation and example application are available at](https://reader035.vdocuments.net/reader035/viewer/2022062713/56649ce15503460f949ab18b/html5/thumbnails/4.jpg)
The Spring FrameworkThe Spring Framework
Official 1.0 release in 2004Current release (January 2009) is 2.5.6
◦ See: http://www.springsource.org/download Works with Java 1.4 or 1.5 or 1.6 and J2EE
1.3 and Java EE 5◦ See:
http://static.springframework.org/spring/docs/2.5.x/reference/new-in-2.html
![Page 5: Introduction to the Spring Framework University of Kansas January 2009 This presentation and example application are available at](https://reader035.vdocuments.net/reader035/viewer/2022062713/56649ce15503460f949ab18b/html5/thumbnails/5.jpg)
What does Spring provide?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
![Page 6: Introduction to the Spring Framework University of Kansas January 2009 This presentation and example application are available at](https://reader035.vdocuments.net/reader035/viewer/2022062713/56649ce15503460f949ab18b/html5/thumbnails/6.jpg)
Spring Modules – Use What You Spring Modules – Use What You WantWant
See: http://static.springframework.org/spring/docs/2.5.x/reference/introduction.html#introduction-overview
![Page 7: Introduction to the Spring Framework University of Kansas January 2009 This presentation and example application are available at](https://reader035.vdocuments.net/reader035/viewer/2022062713/56649ce15503460f949ab18b/html5/thumbnails/7.jpg)
Example ApplicationExample Application
Contacts – store and retrieve contacts◦ Created using MyEclipse 7◦ Uses Maven 2 to manage libraries◦ Demonstrates basic Spring capabilities
Contact has a Person, collection of Email, and collection of Phone objects
Can use an XML file or database as repository
User interface is via the consoleSee READ_ME file under project folder
![Page 8: Introduction to the Spring Framework University of Kansas January 2009 This presentation and example application are available at](https://reader035.vdocuments.net/reader035/viewer/2022062713/56649ce15503460f949ab18b/html5/thumbnails/8.jpg)
Dependency ManagementDependency Management
Manage collaboration (dependencies) between Plain Old Java Objects (POJOs)◦ Code to interfaces◦ Use Spring to instantiate specific interface
implementations Don’t need
InterfaceType anObject = new ClassThatImplementsInterfaceType()
◦ Use Spring to provide specific interface implementations to your objects
![Page 9: Introduction to the Spring Framework University of Kansas January 2009 This presentation and example application are available at](https://reader035.vdocuments.net/reader035/viewer/2022062713/56649ce15503460f949ab18b/html5/thumbnails/9.jpg)
External ConfigurationExternal Configuration
Configuration options◦ Properties files◦ XML configuration files◦ Annotations
XML Configuration◦ Specify the creation of objects◦ Specify the dependencies between objects
![Page 10: Introduction to the Spring Framework University of Kansas January 2009 This presentation and example application are available at](https://reader035.vdocuments.net/reader035/viewer/2022062713/56649ce15503460f949ab18b/html5/thumbnails/10.jpg)
Handling Handling ChangeChangeChange dependencies without changing
code◦Edit the configuration file◦Create multiple configuration files
![Page 11: Introduction to the Spring Framework University of Kansas January 2009 This presentation and example application are available at](https://reader035.vdocuments.net/reader035/viewer/2022062713/56649ce15503460f949ab18b/html5/thumbnails/11.jpg)
Testing ApplicationsTesting Applications
Easier to test◦ Use a test configuration file to create test objects
and manage their dependencies Reuse objects across tests
◦ Test service layer objects by creating stub dependent objects
◦ See: http://static.springframework.org/spring/docs/2.5.x/reference/testing.html
![Page 12: Introduction to the Spring Framework University of Kansas January 2009 This presentation and example application are available at](https://reader035.vdocuments.net/reader035/viewer/2022062713/56649ce15503460f949ab18b/html5/thumbnails/12.jpg)
Separation of ResponsibilitiesSeparation of Responsibilities
Aspect-Oriented Programming (AOP)◦ http://www.javaworld.com/javaworld/jw-01-2002/jw-
0118-aspect.html
Aspect-Oriented Programming in Spring◦ See:
http://static.springframework.org/spring/docs/2.5.x/reference/aop.html
Put a concern (logic) that applies to many different objects in one single place
Logging, security, performance testing, transaction management
![Page 13: Introduction to the Spring Framework University of Kansas January 2009 This presentation and example application are available at](https://reader035.vdocuments.net/reader035/viewer/2022062713/56649ce15503460f949ab18b/html5/thumbnails/13.jpg)
Implementing AOP in SpringImplementing AOP in Spring
Advice◦ Several different ways to configure Advice objects
Implement interfaces and XML configuration Use @AspectJ annotations Integrate with AspectJ
◦ Advice is commonly applied to a method◦ Different ways to apply advice to an object
Before advice After returning advice After throwing advice After advice Around advice
![Page 14: Introduction to the Spring Framework University of Kansas January 2009 This presentation and example application are available at](https://reader035.vdocuments.net/reader035/viewer/2022062713/56649ce15503460f949ab18b/html5/thumbnails/14.jpg)
Database IntegrationDatabase Integration Spring provides a JDBC framework that removes much
of the boiler-plate code◦ See:
http://static.springframework.org/spring/docs/2.5.x/reference/jdbc.html
◦ Configures the data source◦ Gets the connection◦ Creates the statement◦ Processes the result◦ Creates the business objects◦ Handles exceptions◦ Closes connection
Spring can integrate with Hibernate, Java Data Objects (JDO), Java Persistence API (JPA), iBATIS, and other Object Relational Management (ORM) technologies
![Page 15: Introduction to the Spring Framework University of Kansas January 2009 This presentation and example application are available at](https://reader035.vdocuments.net/reader035/viewer/2022062713/56649ce15503460f949ab18b/html5/thumbnails/15.jpg)
Spring JDBCSpring JDBC
Spring JDBC framework takes advantage of Java 5◦ New classes in Spring 2.0 and 2.5 that use
Variable arguments Auto boxing Covariant return types Generics
◦ Can still use older classes and Java 1.4
![Page 16: Introduction to the Spring Framework University of Kansas January 2009 This presentation and example application are available at](https://reader035.vdocuments.net/reader035/viewer/2022062713/56649ce15503460f949ab18b/html5/thumbnails/16.jpg)
Spring JDBC CapabilitiesSpring JDBC Capabilities
Simplified methods for querying and updating tables◦ Query to create a business object -
http://static.springframework.org/spring/docs/2.5.x/reference/jdbc.html#jdbc-SimpleJdbcTemplate
◦ Query for single value - http://static.springframework.org/spring/docs/2.5.x/reference/jdbc.html#jdbc-statements-querying
◦ Insert business objects http://static.springframework.org/spring/docs/2.5.x/reference/jdbc.html#jdbc-simple-jdbc-insert-1
![Page 17: Introduction to the Spring Framework University of Kansas January 2009 This presentation and example application are available at](https://reader035.vdocuments.net/reader035/viewer/2022062713/56649ce15503460f949ab18b/html5/thumbnails/17.jpg)
Example - Contacts ApplicationExample - Contacts Application
◦ Data source is configured and provided to other classes in the configuration file
◦ See classes ContactSearchService_DB and ContactDataAccess_DB Extend Springs’ SimpleJdbcDaoSupport See:
http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/jdbc/core/simple/SimpleJdbcDaoSupport.html
![Page 18: Introduction to the Spring Framework University of Kansas January 2009 This presentation and example application are available at](https://reader035.vdocuments.net/reader035/viewer/2022062713/56649ce15503460f949ab18b/html5/thumbnails/18.jpg)
Additional Spring CapabilitiesAdditional Spring Capabilities Transaction Management
◦ “A transaction defines a logical unit of work that either completely succeeds or produces no result at all. A distributed transaction is simply a transaction that accesses and updates data on two or more networked resources, and therefore must be coordinated among those resources.” see: http://archive.devx.com/java/free/articles/dd_jta/jta-1.asp
Email Scheduling Web services and remoting Spring Web Model View Controller (MVC) Integration with Struts 2
◦ see: http://static.springframework.org/spring/docs/2.5.x/reference/web-integration.html#struts and http://struts.apache.org/2.x/docs/spring-plugin.html
![Page 19: Introduction to the Spring Framework University of Kansas January 2009 This presentation and example application are available at](https://reader035.vdocuments.net/reader035/viewer/2022062713/56649ce15503460f949ab18b/html5/thumbnails/19.jpg)
Where to Learn MoreWhere to Learn More
Review the Spring documentation online◦ Spring documentation -
http://www.springsource.org/documentation ◦ Spring API -
http://static.springframework.org/spring/docs/2.5.x/api/index.html
Spring support forumReview on Safari (KU Library)
◦ Spring in Action, 2nd Edition, Manning Publishing, August 2007
◦ Pro Spring 2.5, Apress Publishing, August 2008