Print this page Share

Professional Java Development with the Spring Framework

ISBN: 978-0-7645-7483-2
676 pages
July 2005
Professional Java Development with the Spring Framework (0764574833) cover image


The Spring Framework is a major open source application development framework that makes Java/J2EE(TM) development easier and more productive. This book shows you not only what Spring can do but why, explaining its functionality and motivation to help you use all parts of the framework to develop successful applications.

You will be guided through all the Spring features and see how they form a coherent whole. In turn, this will help you understand the rationale for Spring's approach, when to use Spring, and how to follow best practices. All this is illustrated with a complete sample application. When you finish the book, you will be well equipped to use Spring effectively in everything from simple Web applications to complex enterprise applications.

What you will learn from this book
* The core Inversion of Control container and the concept of Dependency Injection
* Spring's Aspect Oriented Programming (AOP) framework and why AOP is important in J2EE development
* How to use Spring's programmatic and declarative transaction management services effectively
* Ways to access data using Spring's JDBC functionality, iBATIS SQL Maps, Hibernate, and other O/R mapping frameworks
* Spring services for accessing and implementing EJBs
* Spring's remoting framework

Who this book is for

This book is for Java/J2EE architects and developers who want to gain a deeper knowledge of the Spring Framework and use it effectively.

Wrox Professional guides are planned and written by working programmers to meet the real-world needs of programmers, developers, and IT professionals. Focused and relevant, they address the issues technology professionals face every day. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.
See More

Table of Contents



Chapter 1: Introducing the Spring Framework.

Chapter 2: The Bean Factory and Application Context.

Chapter 3: Advanced Container Concepts.

Chapter 4: Spring and AOP.

Chapter 5: DAO Support and JDBC Framework.

Chapter 6: Transaction and Resource Management.

Chapter 7: Object/Relational Mapping.

Chapter 8: Lightweight Remoting.

Chapter 9: Supporting Services.

Chapter 10: Acegi Security System for Spring.

Chapter 11: Spring and EJB.

Chapter 12: Web MVC Framework.

Chapter 13: Web View Technologies.

Chapter 14: Integrating with Other Web Frameworks.

Chapter 15: The Sample Application.

Chapter 16: Conclusion.

Appendix A: Requirements for the Sample Application.


See More

Author Information

Rod Johnson is the founder of the Spring Framework and a well-known expert on Java and J2EE.
Rod holds a Ph.D. from Sydney University. Originally from a C/C++ background, he has been involved with Java and J2EE since their releases as a developer, architect, and consultant.
He is the author of two of the most popular and influential books on J2EE: Expert One-on-One J2EE Design and Development (Wrox, 2002), and J2EE without EJB (Wrox, 2004, with Juergen Hoeller). Both have played a major role in the rise of “agile” J2EE, and the move away from overly complex traditional J2EE architecture.
Rod is co-lead of the Spring Framework. He is a popular conference speaker and regularly appears at leading Java events in the US, Europe, and Asia. He serves in the Java Community Process (JCP) on the expert groups of several JSRs.
He also has wide consulting experience in banking and finance, insurance, software, and media. He is CEO of Interface21 (www.interface21.com), a consultancy devoted to providing expert J2EE and Spring Framework services.
He is actively involved with client projects as well as Spring development.

Juergen Hoeller is co-founder of Interface21, the company providing commercial Spring services from the source. He is a key driver of Spring development and has been release manager since Spring’s inception. His special interests and responsibilities in the project cover a wide variety of topics, from the core container to transaction management, data access, and lightweight remoting.
Juergen has a Master’s degree in computer science from the University of Linz, specializing in Java, OO modeling, and software engineering. He is co-author of Expert One-on-One J2EE Development without EJB (Wiley, 2004) and regularly presents at conferences and other events. He is also active in many community forums, including TheServerSide.

Alef Arendsen studied computer sciences at the University of Utrecht. Later, also in Utrecht, Alef started his first company. After this turned out to be too little a challenge, Alef went to work for SmartHaven, an Amsterdam-based VCfunded company providing J2EE components for knowledge management applications. He was responsible for streamlining the development process and designing parts of the component infrastructure. In early 2002, together with Joost van de Wijgerd, Alef founded JTeam, a software company providing J2EE development services. Alef is a core Spring committer and, while remaining involved with JTeam, he is now a consultant for Interface21. He is a frequent speaker at public conferences. Alef can be reached by email at alef@interface21.com. You can also read his blog at http://blog.arendsen.net.

Thomas Risberg is a database developer working for TargetrRx, a pharmaceutical market research company located in Horsham, Pennsylvania. He has many years of experience working with both large and small organizations on various database-related projects ranging from simple data entry programs to large data warehousing implementations. Thomas is a reformed COBOL programmer who came to Java via Xbase, Visual Basic, and PL/SQL. He served as an Oracle DBA for a couple of years but decided that software development was really where his heart was. Thomas has a B.A. degree in information processing from the University of Stockhom, Sweden. He is a certified Oracle Professional DBA and a Sun Certified Java Programmer and J2EE Architect.
Thomas joined the Spring Framework development team in early 2003 and is mostly involved in evolving the JDBC layer. His non-computer–related interests are soccer, photography, and travel.

Colin Sampaleanu has had a long and varied career spanning almost two decades—after a childhood spent tinkering with computers and software—including experience developing for and managing his own retail software company, other years in the C++ shrinkwrap and enterprise software space, experience with Java since the early days of the language, and a complete focus on enterprise Java since the late nineties.
Colin is a currently a principal partner at Interface21, which specializes in Spring training, consulting, and support. Prior to joining Interface21, Colin was Chief Architect at a software incubator / VC.
As a core Spring developer and Interface21 principal, Colin spends much of his time talking and writing about the benefits of Spring, and promoting agile software development architectures and methodologies in general.

See More


Download TitleSizeDownload
Source Code Download #1
This file contains the sample app, as well as sources to chapters 3, 4, 5.
7.55 MB Click to Download
Source Code Download #2
This file contains an application which includes source for part of chapter 14.
8.73 MB Click to Download
CH10 acegi-security 0.7 snapshot 253.98 KB Click to Download
See More


Do you think you've discovered an error in this book? Please check the list of errata below to see if we've already addressed the error. If not, please submit the error via our Errata Form. We will attempt to verify your error; if you're right, we will post a correction below.

ChapterPageDetailsDatePrint Run
Code Replacement
The content for this title has been posted and may be accessed via:
40 Error in Text
The sample source code assumes existence of class/interface: WeatherData that is not defined. An experience user, could assume it is a bussiness object corresponding to the weather data, but there is no mention to that. I am not sure at this moment, but in the book there is a mention to WeatherService, when they want to talk about WeatherData.
51 Error in Code
The second last code snippet:

ApplicationContext appContext = new ClassPathXmlApplicationContext(
new String[] {"applicationContext
serviceLayer.xml", "applicationContext-

should be read as:

ApplicationContext appContext = new ClassPathXmlApplicationContext(
new String[] {"applicationContext-
services.xml", "applicationContext-
55 Error in Text
"noStaticFactory" the quote is in bold face, the same for "getTestBeanInstance"
68 Error in Code
public void setWeatherDao(DataSource dataSource) ...

should be:

public void setDataSource(DataSource dataSource) ...
78 Error in Code
3rd code example

should be

87 Error in Text
Last paragraph getMessage() variant()

should be

187 Error in Text
1st paragraph after the text box, some part of the text is in courier and should be in normal font.
9 360 Error in Text (Missing Source Code)
The comment on page 360 is erroneous:
There is no additional source code for chapter 9.

The only source code is that which is printed in the chapter.
424 Error in Code
the first import statement:

import org.springframework.web.servlet.mvc.ModelAndView;

should be:

import org.springframework.web.servlet.ModelAndView;
444 Error in Text
first paragraph, last line:

the reference to Chapter 9 should actually be to Chapter 6.
445 Error in Text
second paragraph, last line:

the reference to Chapter 9 should actually be to Chapter 14.
445 Error in Text
second to last paragraph, last line:

the reference to Chapter 9 should actually be to Chapter 6
453 Error in Code
In the XML snippet for bean definition the code reads:
<bean id="viewResolverTwo"
but neither org.springframework.web.servlet.view.InternalResourceViewResolver or it's superclassess implements interface Orderable, thus there is no "setOrder" method available.

This example does indeed contain an error with respect to Spring 1.2: The "order" property line needs to be dropped. Everything should work as expected then.

Spring's InternalResourceViewResolver does implement the Ordered interface as of Spring 2.0, in conjunction with UrlBasedViewResolver's new "viewNames" property.
14 540 Error in Tag
the xml snippet for the struts-servlet.xml has a closing tag on
property when there should not be:
<property name="orderService"/>

should be:
<property name="orderService">
See More

Related Titles

Back to Top