Index
Symbols
#springBind 326, 331
#springBindEscaped 327
*, regular expression 110
+, regular expression 109
., regular expression 109
.NET 195, 226
\ , regular expression 110
_target 297
Numerics
80–20 rule 144
A
AbstractCommandController
example of 287
for forms 290
in Controller hierarchy 283
when to use 285
wiring 288
AbstractController
example of 285
for forms 290
implementing 286
in Controller hierarchy 283
when to use 285
wiring 287
AbstractExcelView
buildExcelDocument 339
content type 340
decoupling from model 340
described 338
example of 338
AbstractFormController
in Controller hierarchy 283
when to use 285
AbstractJmsMessageDrivenBean 232
AbstractMessageDrivenBean 232
AbstractPdfView 310, 341
example of 341
AbstractStatefulSessionBean 232
AbstractStatelessSessionBean 232
AbstractWizardFormController
_cancel 298
_finish 298
_target 297
example of 295
getInitialPage() 297
getTargetPage() 297
in Controller hierarchy 283
motivations 295
pages 296
processCancel() 298
processFinish() 296–297
validatePage() 299
validating 299
when to use 285
AcceptAnyCasProxy, defined 387
access decision manager, explained 370
AccessDecisionManager
decide() 389
defined 389
implementations of 389
supports() 389
AccessDecisionVoter
defined 390
See also RoleVoter
Acegi authentication-processing filter 401
Acegi Security System 31
authentication entry point 400
enforcing security 397
fundamentals of 369
overview of 368
security interceptor 369
servlet filters 393
ACID 176
Action, Struts class 38
ActionForm, compared to MVC command 289
ActionSupport
benefits 349
defined 349
drawbacks 349
example of 349
advice
types 97
wiring 100
advisor 107, 127
AffirmativeBased 390
after advice 101
afterPropertiesSet() 58
afterReturning() 101
AfterReturningAdvice 98, 101–102
compared to MethodInterceptor 103
example of 102
afterThrowing() 104
annotations 11
Ant
<javac> 200
with Jakarta Commons Attributes 199
AOP 4, 9, 57
and declarative transactions 183
aspects as a blanket 26
cross-cutting concerns 25
declarative transactions 32
for reuse 93
frameworks 95
illustrated 95
in the enterprise 30
orthogonal services 28
proxying classes 96
separation of concerns 25
special syntax 96
Spring module 10
Spring?s implementation 95
terms 93
AOP Alliance 10
benefits of 97
defined 97
MethodInterceptor 104
AopContext 122
Apache OJB. See OJB
applets 4
application server 241
ApplicationContext 44, 46, 90
bean lifecycle 49
getBean() 47
getMessage() 85
implementations of 44, 46
lazy loading 47
publishEvent 87
publishing events 46
singleton beans 47
ApplicationContextAware 50, 87, 89
drawback of using 88, 90
setApplicationContext() 89
ApplicationContextAwareProcessor 76
See also ApplicationContextAware
ApplicationContextFactory 46
ApplicationEvent 85–86
ApplicationListener 85–87, 361
onApplicationEvent() 86
ApuKwikEMart 98
around advice 102
aspect
as Java class 95
defined 93
AspectJ 96
field joinpoints 97
Aspect-Oriented Programming. See AOP
asynchronous operation 256
atomic 176
attributes 195
AttributesTransactionAttributeSource
Jakarta Commons Attributes 197
wiring 196
Auditable 115
AuditableMixin 116
AuthByAuthenticationProvider
defined 372
See also ProviderManager
authentication
entry point diagrammed 401
using database 373
authentication manager 370
authentication processing filter
diagrammed 401
AuthenticationDao 375
See also DaoAuthenticationProvider
AuthenticationManager 371
See also ProviderManager
AuthenticationProcessingFilter 401
AuthenticationProcessingFilterEntryPoint 400
wiring 403
AuthenticationProvider
authenticate() 373
implementations of 372
autodetect, autowiring type 70
autoproxing 124
autowiring 69
autodetect 70–71
by deafult 72
byName 70–71
byType 70–71
constructor 70–71
handling ambiguities 71
motivations 72
using with caution 72
with explicit wiring 72
with HibernateTemplate 162
Avalon 38
AWT, compared to JSF 357
B
Babel Fish 234
Bad Thing 134
BaseCommandController
in Controller hierarchy 283
when to use 285
BaseEngine, replacing 353
BasePage, example of 355
Basic authentication
BasicProcessingFilter 402
BasicProcessingFilterEntryPoint 402
defined 401
BasicDataSource 138
BasicProcessingFilter 401
wiring 402
BasicProcessingFilterEntryPoint 400
wiring 402
batch updates 148
BatchPreparedStatementSetter 148
Batman 142
BEA WebLogic 274
bean 54, 61
<constructor-arg> subelement 65
defining 55
destroy-method attribute 57
init-method attribute 57
parent attribute 202
post-processing 74
<property> subelement 59, 61
singleton attribute 56
bean attribute 202
bean inheritance 202
bean lifecycle 47
<bean> 54–57, 59, 61, 65, 202
BeanCounter example 77
BeanFactory 10, 44, 90
addBeanPostProcessor() 76
bean lifecycle 47
creating 45
dependency injection 45
getBean 15
getBean() 45
implementations of 44
BeanFactoryAware 48, 87, 89
drawback of using 88, 90
setBeanFactory() 89
BeanFactoryPostProcessor 76
implementations of 77
postProcessBeanFactory() 77
registering 77
BeanNameAutoProxyCreator 124–125
BeanNameAware 47, 87
drawback of using 88
setBeanName() 88
use of 89
BeanNameHandlerMapping, defined 279
BeanNameUrlHandlerMapping
as default HandlerMapping 277
drawbacks 280
example of 280
when to define 280
with Struts 351
BeanNameViewResolver
compared to ResourceBundleViewResolver 311
compared to XmlFileViewResolver 311
defined 308
wiring 310
BeanPostProcessor 48, 74
DefaultAdvisorAutoProxyCreator 127
example of 74
implementations of 76
postProcessAfterInitialization() 74
postProcessBeforeInitialization() 74
registering 76
<beans> 54, 72
<default-autowire> attribute 72
before advice 99
before() 99
BeforeAdvice 98
bike riding 156
BindStatus 315
blue pill 87
Burlap 209, 218, 220
choosing 219
compared to SOAP 218
compared to XML-RPC 218
exporting in Spring 223
BurlapProxyFactoryBean 219
BurlapServiceExporter 223
byName, autowiring type 70
ByteMessage 265
byType, autowiring type 70
C
caching 156
CallableStatementCallback, example of 152
callback 182
CAS
benefits of 386
CasAuthenticationProvider 373
CasProcessingFilterEntryPoint 405
history 385
proxy services 387
reference 385
workflow 385
CasAuthenticationProvider
defined 372, 386
wiring 386
CasByAuthenticationProvider. See ProviderManager
cascading 156
CasProcessingFilter 401
CasProcessingFilterEntryPoint 400
wiring 405
CasProxyTicketValidator 386
Caucho Burlap. See Burlap
Caucho Hessian. See Hessian
Caucho Technology 218
Central Authentication Service. See CAS
CGLIB 122
JAR file 96
to create AOP proxy 96
checking luggage 139
Class, wiring with ClassEditor 80
ClassEditor 80
ClassFilter 106, 113
ClassFilter.TRUE 106
ClassPathXmlApplicationContext 46
compared to FileSystemXmlApplicationContext 47
creating 47
defined 54
CleanupFailureDataAccessException 136
CMT 177, 206
compared to NameMatchTransactionAttributeSource 194
transaction propogation 186
collections, wiring 61
command controller 287
CommonsAttributes 282
described 197
wiring 197
See also DefaultTransactionAttribute; RuleBasedTransactionAttribute
CommonsPathMapHandlerMapping
defined 280
wiring 281
compile-time weaving 94
ComponentControllerSupport, example of 336
ComposablePointcut 113
Connection 141
commit() 179
obtaining with Spring 137
rollback() 179
with PreparedStatementCreator 146
with transactions 179
connection pool 138
ConsensusBased 390
consistent 176
constructor injection 64–65
advantages 65, 68
ambiguous arguments 66
compared to setter injection 68
disadvantages 69
example of 52
motivations to use 54
UnsatisfiedDependencyException 67
when to use 69
constructor, autowiring type 70
<constructor-arg>
<bean> subelement 65
choosing order vs type 68
index attribute 67
order arguments 67
resolving by type 67
typeattribute 67
consumer, message 256
container-managed transactions. See CMT
content type 340
ContextClosedEvent 85
ContextLoaderListener 274
configuring context locations 274
configuring in web.xml 274
when to use 274
with Acegi 397
with JSF 360
with Tapestry 354
with WebWork 363
ContextLoaderPlugIn
configuring 348
when delegating 350
ContextLoaderServlet 274
configuring context locations 274
configuring in web.xml 274
when to use 274
with Acegi 397
with Tapestry 354
with WebWork 363
ContextRefreshedEvent 85
ControlFlowPointcut 111–112
Controller 225
compared to HttpServlet 276
compared to Struts Action 276
described 276
hierarchy 283–284
implementing 283
in request lifecycle 271
when to use 285
wiring 276
CORBA 212
corrupt data 134
CosMailSenderImpl 245
coupling
example of 20
static coupling 19
See also decoupling
credit card 209
cron 253
CronTriggerBean 252–253, 255
example of BeanNameAware 88
time elements 253
cross-cutting concerns
defined 92
illustrated 92
modularizing 93
Cruise, Tom 127
CustomDateEditor 80
CustomEditorConfigurer 77, 82, 90
registerCustomEditor() 82
D
DAO
accessing with interfaces 134
advantages of 134
callback 140
defined 134
template 140
unit testing 134
DaoAuthenticationProvider
authenticationDao 375
caching 381
compared to PasswordDaoAuthenticationProvider 374
defined 372
diagram of 374
encrypting passords 379
passwordEncoder 380
userCache 381
wiring 374
See also ProviderManager
DaoCasAuthoritiesPopulator, wiring 388
data access object. See DAO
DataAccessException
as unchecked exception 136
benefits of 135
hierarchy 136
DataAccessResourceFailureException 136
database driver 149
database operation object 152
compared to JdbcTemplate 154
compiling 153