sample application (ImageDB),598
sample application (jPetStore)
definition of,598
iBATIS SQL Maps and,261
lightweight remoting and,307
Tapestry and,543
transactions and,592
sample application (PetClinic),598
sample application (ticket reservation system)
application context,565–566
application layers,552–553
application server,552,574,575
build and deployment,574–575
business services layer,563–566
compared to sample application in J2EE Design and Development,572–573
configuration with web.xml file,568–569
controllers,569–570
data model for,177–178
database,creating and loading,574–575
database server,573–574
DataSource for,178–180
downloading source code for,551
error handling,606
persistence layer
DAO implementation,561–562
data access context,563
data model,554–555
domain object model,556–557
O/R mapping,558–561
requirements for
assumptions,603–604
delivery schedule,604
hardware and software,619–620
overview,601–602
performance,618–619
scope limitations,604
user populations,602–603
use cases
making a reservation,466–474
viewing list of performances,464–466
user interface
application screens,606–608
book seats screen,611–612
box office interface,618
confirm reservation screen,616–617
display show screen,609–611
payment details screen,614–616
show reservation screen,612–614
welcome screen,608–609
workflow for,605–606
view technology,571–572
web layer,566–572
save (persist) methods,DAO,24
SAXHandlers class,519
SchedulerFactoryBean class,349,352–353
scheduling
definition of,345
with Quartz,345,346,348–354
with Timers,345,346–348
Script interface,365
scripting
Beanshell scripts,363–365,582–583
Groovy scripts,362–363,582–583
support for,31,35,361–365,580
security. See also Acegi Security
in business services layer,27,368,370–371
for domain objects,368
JAAS (Java Authentication and Authorization Service),372–375
limited privilege execution,368
requirements for,367–368
Servlet Specification,375–377
for web requests,368
SecurityEnforcementFilter class,369
SecurityInterceptionEvent class,372
SecurityManager class,JAAS,373
serializability,588
serializable AOP proxies,162–163
SERIALIZABLE isolation level,219
server
running JDBC framework in,199–201
testing applications deployed in,108
transaction management and,200–201,220,249–251
when to use,581
server-config.wsdd file,330
service abstraction,14–18
services
abstraction for,14–18,67–71
named,application objects as,7
providing to objects with AOP,11–12
Web Services with JAX-RPC
accessing a service,326–328
custom application objects,330–332
definition of,324–325
exporting a service,328–330
support classes for,325
when to use,325,333
services layer. See business services layer
servlet context listener,93
servlet,load-on-startup,93
Servlet Specification
Acegi Security and,380–381
definition of,375–377
ServletContext class,534–536
ServletContextResource class,85
ServletEndpointSupport class,325,328
Session API,Hibernate,270,280
SessionFactory class,Hibernate,270,272,275
SessionFactoryBean class,301
SessionFactoryUtils class,245,272
sessionForm property, SimpleFormController class,468
SessionLocaleResolver class,455
set element,59–60
setApplicationContext() method, Application ContextAware interface,65,67
setApplicationEventPublisher() method, ApplicationEventPublisherAware interface,65
setBeanFactory() method, BeanFactoryAware interface,65,67
setBeanName() method, BeanNameAware interface,65
setMessageSource() method, MessageSource Aware interface,65
setResourceLoader() method, ResourceLoader Aware interface,65
Setter Injection,9
definition of,589
example of,10,41–43
specifying dependencies and,56
when to use,45–47,590
SETTERS constant, Pointcuts class,127
SimpleFormController class,467–470
SimpleMailMessage class,354
SimpleMappingExceptionResolver class,458
SimpleMessageConverter interface,341
SimpleNativeJdbcExtractor class,JDBC,200
SimpleRemoteStatelessSessionProxy FactoryBean class,71,404–405
SimpleService interface,408–410
SimpleTriggerBean class,348–349,351–352
SimpleUrlHandlerMapping class,443–444
single session mode,Hibernate Open Session in View,283
SingleConnectionDataSource interface,JDBC,179
single-resource transaction managers,243–248
singleton aspects,AspectJ,165–166
singleton attribute, bean element,55–56
singleton beans
accessing container using,99
compared to non-singleton beans,55–56
in lifecycle of AOP proxies,140
singleton container access for EJBs,413–420
singleton property, AdvisedSupport class,137
SingletonBeanFactoryLocator class,99,414–416
SingletonTargetSource interface,144–145
SiteMesh,513
snapshot comparisons,Hibernate,268
SOAP,remoting using,307
SourceForge c3PO,252
source-level metadata for transactions,238–242
“Spring and AspectWerkz — A Happy Marriage" (Boner),169
Spring Framework
advantages of,3,36,577
architecture of,21–29
definition of,1
environments supported by,37
future of,29–32,598–599
goals of,6–8
guidelines for development using
application structure,589–592
layering best practices,583–588
technology choices,581–583
testing,592–594
history of,32–33
integration with other frameworks,19–21
JARs,list of,36
modules in,list of,5–6,33–36,578–580
related projects for,594–596
release schedule of,29
size of,36
techniques used by,18
technologies used by,8–18
Spring Framework community,33
The Spring Framework.NET,595
Spring IDE for Eclipse,595
The Spring Modules project,595
Spring MVC web framework. See also controller objects; model objects; view objects
choosing,523–524,587–588
comparing available frameworks
controllers and interception handling,530–532
data binding,525–528
presentation layer,528–529
requirements for,524–525,532–533
integration with Spring,534–536
JSF web framework
controllers,531
data binding,528
definition of,525
features of,528,529,531,533
integration with,20,547–548
interceptors,531
presentation layer,529
list of,20
requirements for,524
Spring MVC web framework
application design using,427,430–431,440–441
architecture of,425–430
components of,430–436,440–441
controllers,530–531
data binding,461–463,526–527
definition of,5,35,580
example of,423–425,464–474
exception handling,438,456–458
features of,526–527,529,530–531,532–533
handler adapters,449
handler exception resolvers,456–458
handler interceptors,446–449
handler mappings,441–446
handlers,extending,478
handling requests,436–439
Hibernate,Open Session in View,282–285
interceptors,530–531
locale resolution,454–455
presentation layer,529
pull model and,426
push model and,427
requirements for,428
testing controllers,481–485
testing web applications,485
uploading files,478–481
view resolvers,450–454
Struts web framework
compared to Spring Framework,1,3
controllers,530
converting to Spring MVC,437
data binding,526
definition of,525
features of,526,528,530,532
integration with,20,537–543
interceptors,530
presentation layer,528
Tapestry web framework
controllers,531
data binding,527
definition of,525
features of,527,529,531,533
integration with,20,543–547
interceptors,531
presentation layer,529
WebWork web framework
controllers,530
definition of,596
features of,530,532
integration with,536–537
interceptors,530
Spring RCP (Rich Client Project),29,596
Spring Rich Client (RCP) project,29,596
Spring XMLDB,595
spring-beans.dtd file,53
spring:bind tag,498,499–501
spring:hasBindErrors tag,498
spring:htmlEscape tag,498
spring:message tag,498,502–503
spring-mock.jar file,481
spring:nestedPath tag,501
SpringObjectFactory class,536–537
spring:transform tag,498,501–502
SQL Maps (iBATIS)
configuration file,265–266
DAO implementation for,263–265
DAO support class for,173
definition of,255,257,261,267–268
integration with,19
mapped statements (mapping file) for,261–263
Spring setup for,265–266
transaction management using,266–267
when to use,267,584
SQL queries,JDBC
features for,175
with JdbcTemplate class,183–189,204–206
with RDBMS operation classes,189–194,206–209
SQL state code,JDBC,174
SQLErrorCodeSQLExceptionTranslator class, JDBC,201,202–203
SQLException class,JDBC,174,180–182
SqlMapClient API,iBATIS SQL Maps,263–265
SqlMapClientDaoSupport class,173,263
SqlMapClientFactoryBean class,265
SqlMapClientTemplate class, 263–265
sql-map-config.xml file, 265–266
SqlQuery class, JDBC, 189, 190–192
SqlUpdate class, JDBC, 189, 192–193, 206–208
standards,Spring Framework and,31–32
Stateful Session Beans,implementing,410–411
StatefulJob interface,350–351
StatefulService interface,410
stateless remoting,307
Stateless Session Beans
implementing, 407–410
lookups, encapsulating, 402–406
Statement interface,JDBC,174
statement wrappers,with application servers,200–201
static pointcuts,127,129
staticAttributesMap property, AbstractView class,520
StaticMethodMatcherPointcut class,129
status of transaction,229
status.displayValue() method, BindStatus class,500
status.error() method, BindStatus class,500
status.errorCode() method, BindStatus class,500
status.errorCodes() method, BindStatus class,500
status.errorMessage() method, BindStatus class,500
status.errorMessages() method, BindStatus class,500–501
status.expression() method, BindStatus class,500
status.value() method, BindStatus class,500
stored procedures,JDBC,196–199,210–214
StoredProcedure class,JDBC,189,196–199,211–214
StringArrayPropertyEditor class,103
StringTrimmedEditor class,103
strongly typed operations,DAO,260
Struts Tiles,511–513
Struts web framework
compared to Spring Framework,1,3
controllers,530
converting to Spring MVC,437
data binding,526
definition of,525
features of,526,528,530,532
integration with,20,537–543
interceptors,530
presentation layer,528
struts-config.xml file,539,541
stub lookups,RMI remoting,317,320–322
Subject class,JAAS,372
successView property, SimpleFormController class,468
supportedMethods property, WebContent Interceptor class,448
supports() method, HandlerAdapter interface,478
SUPPORTS transaction attribute,222
suppressValidation() method, SimpleForm Controller class,470
swap() method, HotSwappableTargetSource class,148
Swing-based applications,using Spring with,596
synchronous messaging,339