- Broschiertes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
Get up to speed quickly with this comprehensive guide to Spring
Beginning Spring is the complete beginner's guide to Java's most popular framework. Written with an eye toward real-world enterprises, the book covers all aspects of application development within the Spring Framework. Extensive samples within each chapter allow developers to get up to speed quickly by providing concrete references for experimentation, building a skillset that drives successful application development by exploiting the full capabilities of Java's latest advances.
Spring provides the exact toolset required to…mehr
Andere Kunden interessierten sich auch für
- Jack Li GuojieProfessional Java Native Interfaces with SWT/JFace49,99 €
- Nicholas S. WilliamsProfessional Java for Web Appl62,99 €
- Bart BaesensBeginning Java Programming39,99 €
- Doug LoweJavafx for Dummies25,99 €
- Michael J. ChonolesUML 2 for Dummies26,99 €
- Jon HarropF# for Scientists116,99 €
- Darren BroemmerJ2ee Best Practices: Java Design Patterns, Automation, and Performance38,99 €
-
-
-
Get up to speed quickly with this comprehensive guide to Spring
Beginning Spring is the complete beginner's guide to Java's most popular framework. Written with an eye toward real-world enterprises, the book covers all aspects of application development within the Spring Framework. Extensive samples within each chapter allow developers to get up to speed quickly by providing concrete references for experimentation, building a skillset that drives successful application development by exploiting the full capabilities of Java's latest advances.
Spring provides the exact toolset required to build an enterprise application, and has become the standard within the field. This book covers Spring 4.0, which contains support for Java 8 and Java EE 7. Readers begin with the basics of the framework, then go on to master the most commonly used tools and fundamental concepts inherent in any Spring project. The book emphasizes practicality and real-world application by addressing needs such as meeting customer demand and boosting productivity, and by providing actionable information that helps developers get the most out of the framework. Topics include:
* Dependency Injection and Inversion of Control
* Unit testing Spring enabled Web Applications
* Data Access using Spring JDBC and ORM support along with Transaction Management
* Building Web Applications and RESTful Web Services with Spring MVC
* Securing Web Applications using Spring Security
* Spring Expression Language with its Extensive Features
* Aspect Oriented Programming Facilities Provided by Spring AOP
* Caching with 3rd Party Cache Providers' Support
* The Best of the Breed: Spring 4.0
The information is organized and structured an ideal way for students and corporate training programs, and explanations about inner workings of the framework make it a handy desk reference even for experienced developers. For novices, Beginning Spring is invaluable as a comprehensive guide to the real-world functionality of Spring.
Hinweis: Dieser Artikel kann nur an eine deutsche Lieferadresse ausgeliefert werden.
Beginning Spring is the complete beginner's guide to Java's most popular framework. Written with an eye toward real-world enterprises, the book covers all aspects of application development within the Spring Framework. Extensive samples within each chapter allow developers to get up to speed quickly by providing concrete references for experimentation, building a skillset that drives successful application development by exploiting the full capabilities of Java's latest advances.
Spring provides the exact toolset required to build an enterprise application, and has become the standard within the field. This book covers Spring 4.0, which contains support for Java 8 and Java EE 7. Readers begin with the basics of the framework, then go on to master the most commonly used tools and fundamental concepts inherent in any Spring project. The book emphasizes practicality and real-world application by addressing needs such as meeting customer demand and boosting productivity, and by providing actionable information that helps developers get the most out of the framework. Topics include:
* Dependency Injection and Inversion of Control
* Unit testing Spring enabled Web Applications
* Data Access using Spring JDBC and ORM support along with Transaction Management
* Building Web Applications and RESTful Web Services with Spring MVC
* Securing Web Applications using Spring Security
* Spring Expression Language with its Extensive Features
* Aspect Oriented Programming Facilities Provided by Spring AOP
* Caching with 3rd Party Cache Providers' Support
* The Best of the Breed: Spring 4.0
The information is organized and structured an ideal way for students and corporate training programs, and explanations about inner workings of the framework make it a handy desk reference even for experienced developers. For novices, Beginning Spring is invaluable as a comprehensive guide to the real-world functionality of Spring.
Hinweis: Dieser Artikel kann nur an eine deutsche Lieferadresse ausgeliefert werden.
Produktdetails
- Produktdetails
- Wrox Programmer to Programmer
- Verlag: Wiley & Sons / Wrox Press
- 1. Auflage
- Seitenzahl: 480
- Erscheinungstermin: 17. Februar 2015
- Englisch
- Abmessung: 235mm x 191mm x 26mm
- Gewicht: 830g
- ISBN-13: 9781118892923
- ISBN-10: 1118892925
- Artikelnr.: 41372242
- Wrox Programmer to Programmer
- Verlag: Wiley & Sons / Wrox Press
- 1. Auflage
- Seitenzahl: 480
- Erscheinungstermin: 17. Februar 2015
- Englisch
- Abmessung: 235mm x 191mm x 26mm
- Gewicht: 830g
- ISBN-13: 9781118892923
- ISBN-10: 1118892925
- Artikelnr.: 41372242
Mert Çalışkan is an Oracle Java Champion and has been working as Principal Architect in Turkey. He has more than 10 years' experience in software development, where he has focused on architectural design of enterprise web applications. Kenan Sevindik is a Sun certified Java J2EE Business and Web Component developer, with more than 15 years of Java development experience. He has extensive experience with the major enterprise Java frameworks and gives seminars on a variety of Java concepts.
FOREWORDS xxvii INTRODUCTION xxxi CHAPTER 1: POJO PROGRAMMING MODEL,
LIGHTWEIGHT CONTAINERS, AND INVERSION OF CONTROL 1 POJO Programming Model 2
Problems of the Old EJB Programming Model 2 Benefits of the POJO
Programming Model 7 Lightweight Containers and Inversion of Control (IoC) 8
Lightweight Containers 8 Inversion of Control (IoC) 9 Dependency Injection
10 Setter Injection 11 Constructor Injection 11 Setter or Constructor
Injection 12 Summary 12 CHAPTER 2: DEPENDENCY INJECTION WITH SPRING 17
Spring IoC Container 18 Configuration Metadata 18 Configuring and Using the
Container 21 Dependency Injection 29 Setter Injection 30 Constructor
Injection 31 Circular Dependencies 34 Dependency Resolution Process 35
Overriding Bean Definitions 36 Using the depends?]on Attribute 38
Autowiring 39 Bean Lookups 43 Spring?]Managed Beans 44 Naming Beans 44 Bean
Instantiation Methods 45 Bean Scopes 48 Lazy Initialization 51 Life-Cycle
Callbacks 52 Bean Definition Profiles 54 Environment 56 Summary 59 CHAPTER
3: BUILDING WEB APPLICATIONS USING SPRING MVC 63 Learning the Features and
Benefits of Spring MVC 64 Using the Dispatcher Servlet Mechanism 65
Defining the Servlet 66 Accessing Servlet Context 67 Creating Your First
Spring MVC Application 68 Configuring Spring MVC with Annotations 71
Handling Forms with JSP 73 Configuring the Form Tag Library 73
Understanding the Power of Binding 74 Working with Forms 74 Using Input
Elements 75 Entering Dates 76 Selecting from a Drop?]Down 77 Selecting with
Radio Buttons 78 Selecting with Checkboxes 78 Adding Labels 78 Placing
Buttons 79 Styling 79 Exploiting the Power of Annotations 84 @Controller 84
@RequestMapping 84 @ModelAttribute 84 @PathVariable 85 @ControllerAdvice 85
@InitBinder 85 @ExceptionHandler 85 Validating User Input 86 Uploading
Files 90 Handling Exceptions 93 Implementing Internationalization (i18n) 95
Using Themes 97 Summary 100 CHAPTER 4: JDBC DATA ACCESS WITH SPRING 103
Problems with Using Vanilla JDBC 104 Introducing Spring's JDBC Support 105
Managing JDBC Connections 105 Embedded DB Support 108 Using a
Connection?]Pooled DataSource 110 Initializing DB 111 Configuring and Using
Spring's JDBC Support 112 Performing Data Access Operations with Spring 114
Running Queries 114 Queries with Named Parameters 117 Writing Queries Using
the IN Clause 118 Using PreparedStatements within JdbcTemplate 119
Inserting, Updating, and Deleting Records 121 Calling Stored Procedures and
Stored Functions 124 Performing Batch Operations 126 Handling BLOB and CLOB
Objects 126 Accessing Vendor?]Specific JDBC Methods 127 Executing DDL
Operations 127 Modeling JDBC Operations as Java Objects 128 Encapsulating
SQL Query Executions 128 Encapsulating SQL DML Operations 130 Encapsulating
Stored Procedure Executions 131 Exception Handling and Error Code
Translation 132 Common Data Access Exception Hierarchy 132 Automatic
Handling and Translation of SQLException 132 Summary 133 CHAPTER 5: DATA
ACCESS WITH JPA USING SPRING 137 Brief Introduction to ORM and JPA 138
Paradigm Mismatch 138 Building Blocks of an ORM Framework 139 What JPA
Offers 139 Mapping the Object Model to the Relational Model 140 Defining
Entities 140 Mapping Attributes to Columns 141 Creating Associations
between Objects 142 Mapping Java Types to SQL Types 145 Configuring and
Using JPA 147 Performing CRUD Operations on Objects 150 Querying with
Object Query Language 155 Spring's JPA Support 156 Setting Up JPA in Spring
Container 156 Implementing DAOs Based on Plain JPA 161 Handling and
Translating Exceptions 166 Further JPA Configuration in Spring Environment
167 JpaDialect 168 JpaVendorAdapter 168 JPA and Load Time Weaving 169
Dealing with Multiple Persistence Units 170 Summary 171 CHAPTER 6: MANAGING
TRANSACTIONS WITH SPRING 175 Understanding Transaction Management 176
Spring's Transaction Abstraction Model 180 Local versus Global Transactions
182 PlatformTransactionManager Implementations 182 Advantages of Spring's
Abstract Transaction Model 183 Declarative Transaction Management with
Spring 183 Isolating the Service Layer from Data Access Technology Details
186 Customizing Default Transactional Behavior 189 Using @Transactional on
the Class Level 190 Understanding Transaction Propagation Rules 191
Propagation REQUIRED 191 Propagation REQUIRES_NEW 192 Propagation NESTED
192 Propagation SUPPORTS 192 Propagation NOT_SUPPORTED 192 Propagation
NEVER 193 Propagation MANDATORY 193 Using for Declarative Transaction
Management 195 Programmatic Transaction Management with Spring 197 Using
the PlatformTransactionManager Approach 201 Executing Custom Logic Before
or After Transactions 203 Advising Transactional Operations 203 Executing
Logic after Transactions Using TransactionSynchronization 204 Summary 205
CHAPTER 7: TEST?]DRIVEN DEVELOPMENT WITH SPRING 209 Configuring and Caching
ApplicationContext 210 Using XML?] and Java?]Based Context Configuration in
Tests 210 Confi guring Context with ApplicationContextInitializer 214
Inheriting Context Configuration 214 ApplicationContext Caching 216
Injecting Dependencies of Test Fixtures 217 Using Transaction Management in
Tests 219 Testing Web Applications 222 Context Hierarchies in Tests 225
Testing Request?] and Session?]Scoped Beans 225 Testing Spring MVC Projects
227 Testing Controllers 227 Testing Form Submit 228 Testing Exception
Handlers 230 Printing Mock Request and Response 231 Using Mock Objects and
Other Utilities for Testing 231 Spring Provided Mock Objects for Testing
231 Other Utilities and Test Annotations 232 Summary 233 CHAPTER 8:
ASPECT?]ORIENTED PROGRAMMING WITH SPRING 237 Getting Started with AOP with
Spring 239 Becoming Familiar with Types of Advices 243 Before 245 After
Returning 245 After Throwing 245 After (Finally) 246 Around 247 Defining
Point?]Cut Designators 248 The Type Signature Expressions 248 The Method
Signature Expressions 249 Other Alternative Point?]Cut Designators 249
Wildcards 250 Capitalizing on the Power of Annotations 250 @Before 250
@Pointcut 251 @After 252 @AfterReturning 252 @AfterThrowing 252 @Aspect 253
@Around 253 @DeclareParents 254 Blending AspectJ with Spring 255
Configuring Spring AOP with Annotations 259 Summary 259 CHAPTER 9: SPRING
EXPRESSION LANGUAGE 263 Configuring Applications with SpEL 264 Creating a
Parser 267 Invoking Methods 270 Calling Constructors 272 Calling Static
Methods 272 Working with Variables and Functions 273 #root 273 #this 274
Accessing System Properties and Environment 274 Inline Lists 274
Registering Functions 274 Understanding SpEL Operators 275 Relational
Operators 276 Arithmetic Operators 276 Logical Operators 276 Conditional
Operators 277 Regular Expression Operator 278 Safe Navigation Operator 278
Collection Selection and Projection 279 Selecting the First and Last
Element of a Collection 280 Using Utilities in SpEL 280 Accessing Spring
Beans 280 281 Expressions in Caching 281 Summary 281 CHAPTER 10: CACHING
285 Building Your First Caching Application 286 Configuring the Cache
Manager with a Different Name 289 Configuring the Caching Abstraction with
Annotations 289 Working with Cache Annotations 290 @Cacheable 290 Key
Generator 291 Conditional Caching 291 @CacheEvict 292 @CachePut 292
@Caching 293 Implementing Cache Managers 293 SimpleCacheManager 293
NoOpCacheManager 294 ConcurrentMapCacheManager 294 CompositeCacheManager
294 Casting Your SpEL on Caches 295 Initializing Your Caches
Programmatically 296 Finding Alternative Cache Providers 298 Ehcache 299
Guava 302 Hazelcast 302 Summary 303 CHAPTER 11: RESTFUL WEB SERVICES WITH
SPRING 305 Creating Your First REST Web Service 306 Returning Different
HTTP Status Codes from REST Web Service 318 Learning an Annotation?]Based
Configuration Alternative 318 Using REST Web Services with XML 320 Using
the Exception Handling Mechanism 322 Unit Testing RESTful Services 326
Summary 328 CHAPTER 12: SECURING WEB APPLICATIONS WITH SPRING SECURITY 331
Why Spring Security? 332 Features of Spring Security 333 Configuring and
Using Spring Security 334 Understanding the Fundamental Building Blocks of
Spring Security 340 Authenticating Users 341 Unsuccessful Login Flow 342
Successful Login Flow 342 Anonymous Authentication 344 Customizing the
Login Page 344 Logout Process 346 Accessing UserDetails Using JDBC 346
Encrypting Passwords 349 Remember?]Me Support 350 User Session Management
351 Basic Authentication 352 Authorizing Web Requests and Service Method
Calls 353 Authorizing Web Requests 353 How Does Authorization Work? 355
Expression?]Based Authorization 357 Using JSP Security Tags 358 Authorize
Tag 359 Authenticate Tag 359 Authorizing Service Methods 359 Summary 364
CHAPTER 13: NEXT STOP: SPRING 4.0 369 Keeping Up with the Latest: Java 8
and Java EE7 Support 370 Lambda Expressions 370 Method References 373 Bean
Validation Integration 374 JSR 310: Date Time Value Type Support 374
Configuring Injection with Conditional Dependency 374 Ordering the Elements
of Autowired Collections 377 Repeating Annotations 379 Introducing New
Annotations 381 Documenting with @Description 381 Using the @RestController
Annotation 382 Summary 382 APPENDIX: SOLUTIONS TO EXERCISES 385 INDEX 425
LIGHTWEIGHT CONTAINERS, AND INVERSION OF CONTROL 1 POJO Programming Model 2
Problems of the Old EJB Programming Model 2 Benefits of the POJO
Programming Model 7 Lightweight Containers and Inversion of Control (IoC) 8
Lightweight Containers 8 Inversion of Control (IoC) 9 Dependency Injection
10 Setter Injection 11 Constructor Injection 11 Setter or Constructor
Injection 12 Summary 12 CHAPTER 2: DEPENDENCY INJECTION WITH SPRING 17
Spring IoC Container 18 Configuration Metadata 18 Configuring and Using the
Container 21 Dependency Injection 29 Setter Injection 30 Constructor
Injection 31 Circular Dependencies 34 Dependency Resolution Process 35
Overriding Bean Definitions 36 Using the depends?]on Attribute 38
Autowiring 39 Bean Lookups 43 Spring?]Managed Beans 44 Naming Beans 44 Bean
Instantiation Methods 45 Bean Scopes 48 Lazy Initialization 51 Life-Cycle
Callbacks 52 Bean Definition Profiles 54 Environment 56 Summary 59 CHAPTER
3: BUILDING WEB APPLICATIONS USING SPRING MVC 63 Learning the Features and
Benefits of Spring MVC 64 Using the Dispatcher Servlet Mechanism 65
Defining the Servlet 66 Accessing Servlet Context 67 Creating Your First
Spring MVC Application 68 Configuring Spring MVC with Annotations 71
Handling Forms with JSP 73 Configuring the Form Tag Library 73
Understanding the Power of Binding 74 Working with Forms 74 Using Input
Elements 75 Entering Dates 76 Selecting from a Drop?]Down 77 Selecting with
Radio Buttons 78 Selecting with Checkboxes 78 Adding Labels 78 Placing
Buttons 79 Styling 79 Exploiting the Power of Annotations 84 @Controller 84
@RequestMapping 84 @ModelAttribute 84 @PathVariable 85 @ControllerAdvice 85
@InitBinder 85 @ExceptionHandler 85 Validating User Input 86 Uploading
Files 90 Handling Exceptions 93 Implementing Internationalization (i18n) 95
Using Themes 97 Summary 100 CHAPTER 4: JDBC DATA ACCESS WITH SPRING 103
Problems with Using Vanilla JDBC 104 Introducing Spring's JDBC Support 105
Managing JDBC Connections 105 Embedded DB Support 108 Using a
Connection?]Pooled DataSource 110 Initializing DB 111 Configuring and Using
Spring's JDBC Support 112 Performing Data Access Operations with Spring 114
Running Queries 114 Queries with Named Parameters 117 Writing Queries Using
the IN Clause 118 Using PreparedStatements within JdbcTemplate 119
Inserting, Updating, and Deleting Records 121 Calling Stored Procedures and
Stored Functions 124 Performing Batch Operations 126 Handling BLOB and CLOB
Objects 126 Accessing Vendor?]Specific JDBC Methods 127 Executing DDL
Operations 127 Modeling JDBC Operations as Java Objects 128 Encapsulating
SQL Query Executions 128 Encapsulating SQL DML Operations 130 Encapsulating
Stored Procedure Executions 131 Exception Handling and Error Code
Translation 132 Common Data Access Exception Hierarchy 132 Automatic
Handling and Translation of SQLException 132 Summary 133 CHAPTER 5: DATA
ACCESS WITH JPA USING SPRING 137 Brief Introduction to ORM and JPA 138
Paradigm Mismatch 138 Building Blocks of an ORM Framework 139 What JPA
Offers 139 Mapping the Object Model to the Relational Model 140 Defining
Entities 140 Mapping Attributes to Columns 141 Creating Associations
between Objects 142 Mapping Java Types to SQL Types 145 Configuring and
Using JPA 147 Performing CRUD Operations on Objects 150 Querying with
Object Query Language 155 Spring's JPA Support 156 Setting Up JPA in Spring
Container 156 Implementing DAOs Based on Plain JPA 161 Handling and
Translating Exceptions 166 Further JPA Configuration in Spring Environment
167 JpaDialect 168 JpaVendorAdapter 168 JPA and Load Time Weaving 169
Dealing with Multiple Persistence Units 170 Summary 171 CHAPTER 6: MANAGING
TRANSACTIONS WITH SPRING 175 Understanding Transaction Management 176
Spring's Transaction Abstraction Model 180 Local versus Global Transactions
182 PlatformTransactionManager Implementations 182 Advantages of Spring's
Abstract Transaction Model 183 Declarative Transaction Management with
Spring 183 Isolating the Service Layer from Data Access Technology Details
186 Customizing Default Transactional Behavior 189 Using @Transactional on
the Class Level 190 Understanding Transaction Propagation Rules 191
Propagation REQUIRED 191 Propagation REQUIRES_NEW 192 Propagation NESTED
192 Propagation SUPPORTS 192 Propagation NOT_SUPPORTED 192 Propagation
NEVER 193 Propagation MANDATORY 193 Using for Declarative Transaction
Management 195 Programmatic Transaction Management with Spring 197 Using
the PlatformTransactionManager Approach 201 Executing Custom Logic Before
or After Transactions 203 Advising Transactional Operations 203 Executing
Logic after Transactions Using TransactionSynchronization 204 Summary 205
CHAPTER 7: TEST?]DRIVEN DEVELOPMENT WITH SPRING 209 Configuring and Caching
ApplicationContext 210 Using XML?] and Java?]Based Context Configuration in
Tests 210 Confi guring Context with ApplicationContextInitializer 214
Inheriting Context Configuration 214 ApplicationContext Caching 216
Injecting Dependencies of Test Fixtures 217 Using Transaction Management in
Tests 219 Testing Web Applications 222 Context Hierarchies in Tests 225
Testing Request?] and Session?]Scoped Beans 225 Testing Spring MVC Projects
227 Testing Controllers 227 Testing Form Submit 228 Testing Exception
Handlers 230 Printing Mock Request and Response 231 Using Mock Objects and
Other Utilities for Testing 231 Spring Provided Mock Objects for Testing
231 Other Utilities and Test Annotations 232 Summary 233 CHAPTER 8:
ASPECT?]ORIENTED PROGRAMMING WITH SPRING 237 Getting Started with AOP with
Spring 239 Becoming Familiar with Types of Advices 243 Before 245 After
Returning 245 After Throwing 245 After (Finally) 246 Around 247 Defining
Point?]Cut Designators 248 The Type Signature Expressions 248 The Method
Signature Expressions 249 Other Alternative Point?]Cut Designators 249
Wildcards 250 Capitalizing on the Power of Annotations 250 @Before 250
@Pointcut 251 @After 252 @AfterReturning 252 @AfterThrowing 252 @Aspect 253
@Around 253 @DeclareParents 254 Blending AspectJ with Spring 255
Configuring Spring AOP with Annotations 259 Summary 259 CHAPTER 9: SPRING
EXPRESSION LANGUAGE 263 Configuring Applications with SpEL 264 Creating a
Parser 267 Invoking Methods 270 Calling Constructors 272 Calling Static
Methods 272 Working with Variables and Functions 273 #root 273 #this 274
Accessing System Properties and Environment 274 Inline Lists 274
Registering Functions 274 Understanding SpEL Operators 275 Relational
Operators 276 Arithmetic Operators 276 Logical Operators 276 Conditional
Operators 277 Regular Expression Operator 278 Safe Navigation Operator 278
Collection Selection and Projection 279 Selecting the First and Last
Element of a Collection 280 Using Utilities in SpEL 280 Accessing Spring
Beans 280 281 Expressions in Caching 281 Summary 281 CHAPTER 10: CACHING
285 Building Your First Caching Application 286 Configuring the Cache
Manager with a Different Name 289 Configuring the Caching Abstraction with
Annotations 289 Working with Cache Annotations 290 @Cacheable 290 Key
Generator 291 Conditional Caching 291 @CacheEvict 292 @CachePut 292
@Caching 293 Implementing Cache Managers 293 SimpleCacheManager 293
NoOpCacheManager 294 ConcurrentMapCacheManager 294 CompositeCacheManager
294 Casting Your SpEL on Caches 295 Initializing Your Caches
Programmatically 296 Finding Alternative Cache Providers 298 Ehcache 299
Guava 302 Hazelcast 302 Summary 303 CHAPTER 11: RESTFUL WEB SERVICES WITH
SPRING 305 Creating Your First REST Web Service 306 Returning Different
HTTP Status Codes from REST Web Service 318 Learning an Annotation?]Based
Configuration Alternative 318 Using REST Web Services with XML 320 Using
the Exception Handling Mechanism 322 Unit Testing RESTful Services 326
Summary 328 CHAPTER 12: SECURING WEB APPLICATIONS WITH SPRING SECURITY 331
Why Spring Security? 332 Features of Spring Security 333 Configuring and
Using Spring Security 334 Understanding the Fundamental Building Blocks of
Spring Security 340 Authenticating Users 341 Unsuccessful Login Flow 342
Successful Login Flow 342 Anonymous Authentication 344 Customizing the
Login Page 344 Logout Process 346 Accessing UserDetails Using JDBC 346
Encrypting Passwords 349 Remember?]Me Support 350 User Session Management
351 Basic Authentication 352 Authorizing Web Requests and Service Method
Calls 353 Authorizing Web Requests 353 How Does Authorization Work? 355
Expression?]Based Authorization 357 Using JSP Security Tags 358 Authorize
Tag 359 Authenticate Tag 359 Authorizing Service Methods 359 Summary 364
CHAPTER 13: NEXT STOP: SPRING 4.0 369 Keeping Up with the Latest: Java 8
and Java EE7 Support 370 Lambda Expressions 370 Method References 373 Bean
Validation Integration 374 JSR 310: Date Time Value Type Support 374
Configuring Injection with Conditional Dependency 374 Ordering the Elements
of Autowired Collections 377 Repeating Annotations 379 Introducing New
Annotations 381 Documenting with @Description 381 Using the @RestController
Annotation 382 Summary 382 APPENDIX: SOLUTIONS TO EXERCISES 385 INDEX 425
FOREWORDS xxvii INTRODUCTION xxxi CHAPTER 1: POJO PROGRAMMING MODEL,
LIGHTWEIGHT CONTAINERS, AND INVERSION OF CONTROL 1 POJO Programming Model 2
Problems of the Old EJB Programming Model 2 Benefits of the POJO
Programming Model 7 Lightweight Containers and Inversion of Control (IoC) 8
Lightweight Containers 8 Inversion of Control (IoC) 9 Dependency Injection
10 Setter Injection 11 Constructor Injection 11 Setter or Constructor
Injection 12 Summary 12 CHAPTER 2: DEPENDENCY INJECTION WITH SPRING 17
Spring IoC Container 18 Configuration Metadata 18 Configuring and Using the
Container 21 Dependency Injection 29 Setter Injection 30 Constructor
Injection 31 Circular Dependencies 34 Dependency Resolution Process 35
Overriding Bean Definitions 36 Using the depends?]on Attribute 38
Autowiring 39 Bean Lookups 43 Spring?]Managed Beans 44 Naming Beans 44 Bean
Instantiation Methods 45 Bean Scopes 48 Lazy Initialization 51 Life-Cycle
Callbacks 52 Bean Definition Profiles 54 Environment 56 Summary 59 CHAPTER
3: BUILDING WEB APPLICATIONS USING SPRING MVC 63 Learning the Features and
Benefits of Spring MVC 64 Using the Dispatcher Servlet Mechanism 65
Defining the Servlet 66 Accessing Servlet Context 67 Creating Your First
Spring MVC Application 68 Configuring Spring MVC with Annotations 71
Handling Forms with JSP 73 Configuring the Form Tag Library 73
Understanding the Power of Binding 74 Working with Forms 74 Using Input
Elements 75 Entering Dates 76 Selecting from a Drop?]Down 77 Selecting with
Radio Buttons 78 Selecting with Checkboxes 78 Adding Labels 78 Placing
Buttons 79 Styling 79 Exploiting the Power of Annotations 84 @Controller 84
@RequestMapping 84 @ModelAttribute 84 @PathVariable 85 @ControllerAdvice 85
@InitBinder 85 @ExceptionHandler 85 Validating User Input 86 Uploading
Files 90 Handling Exceptions 93 Implementing Internationalization (i18n) 95
Using Themes 97 Summary 100 CHAPTER 4: JDBC DATA ACCESS WITH SPRING 103
Problems with Using Vanilla JDBC 104 Introducing Spring's JDBC Support 105
Managing JDBC Connections 105 Embedded DB Support 108 Using a
Connection?]Pooled DataSource 110 Initializing DB 111 Configuring and Using
Spring's JDBC Support 112 Performing Data Access Operations with Spring 114
Running Queries 114 Queries with Named Parameters 117 Writing Queries Using
the IN Clause 118 Using PreparedStatements within JdbcTemplate 119
Inserting, Updating, and Deleting Records 121 Calling Stored Procedures and
Stored Functions 124 Performing Batch Operations 126 Handling BLOB and CLOB
Objects 126 Accessing Vendor?]Specific JDBC Methods 127 Executing DDL
Operations 127 Modeling JDBC Operations as Java Objects 128 Encapsulating
SQL Query Executions 128 Encapsulating SQL DML Operations 130 Encapsulating
Stored Procedure Executions 131 Exception Handling and Error Code
Translation 132 Common Data Access Exception Hierarchy 132 Automatic
Handling and Translation of SQLException 132 Summary 133 CHAPTER 5: DATA
ACCESS WITH JPA USING SPRING 137 Brief Introduction to ORM and JPA 138
Paradigm Mismatch 138 Building Blocks of an ORM Framework 139 What JPA
Offers 139 Mapping the Object Model to the Relational Model 140 Defining
Entities 140 Mapping Attributes to Columns 141 Creating Associations
between Objects 142 Mapping Java Types to SQL Types 145 Configuring and
Using JPA 147 Performing CRUD Operations on Objects 150 Querying with
Object Query Language 155 Spring's JPA Support 156 Setting Up JPA in Spring
Container 156 Implementing DAOs Based on Plain JPA 161 Handling and
Translating Exceptions 166 Further JPA Configuration in Spring Environment
167 JpaDialect 168 JpaVendorAdapter 168 JPA and Load Time Weaving 169
Dealing with Multiple Persistence Units 170 Summary 171 CHAPTER 6: MANAGING
TRANSACTIONS WITH SPRING 175 Understanding Transaction Management 176
Spring's Transaction Abstraction Model 180 Local versus Global Transactions
182 PlatformTransactionManager Implementations 182 Advantages of Spring's
Abstract Transaction Model 183 Declarative Transaction Management with
Spring 183 Isolating the Service Layer from Data Access Technology Details
186 Customizing Default Transactional Behavior 189 Using @Transactional on
the Class Level 190 Understanding Transaction Propagation Rules 191
Propagation REQUIRED 191 Propagation REQUIRES_NEW 192 Propagation NESTED
192 Propagation SUPPORTS 192 Propagation NOT_SUPPORTED 192 Propagation
NEVER 193 Propagation MANDATORY 193 Using for Declarative Transaction
Management 195 Programmatic Transaction Management with Spring 197 Using
the PlatformTransactionManager Approach 201 Executing Custom Logic Before
or After Transactions 203 Advising Transactional Operations 203 Executing
Logic after Transactions Using TransactionSynchronization 204 Summary 205
CHAPTER 7: TEST?]DRIVEN DEVELOPMENT WITH SPRING 209 Configuring and Caching
ApplicationContext 210 Using XML?] and Java?]Based Context Configuration in
Tests 210 Confi guring Context with ApplicationContextInitializer 214
Inheriting Context Configuration 214 ApplicationContext Caching 216
Injecting Dependencies of Test Fixtures 217 Using Transaction Management in
Tests 219 Testing Web Applications 222 Context Hierarchies in Tests 225
Testing Request?] and Session?]Scoped Beans 225 Testing Spring MVC Projects
227 Testing Controllers 227 Testing Form Submit 228 Testing Exception
Handlers 230 Printing Mock Request and Response 231 Using Mock Objects and
Other Utilities for Testing 231 Spring Provided Mock Objects for Testing
231 Other Utilities and Test Annotations 232 Summary 233 CHAPTER 8:
ASPECT?]ORIENTED PROGRAMMING WITH SPRING 237 Getting Started with AOP with
Spring 239 Becoming Familiar with Types of Advices 243 Before 245 After
Returning 245 After Throwing 245 After (Finally) 246 Around 247 Defining
Point?]Cut Designators 248 The Type Signature Expressions 248 The Method
Signature Expressions 249 Other Alternative Point?]Cut Designators 249
Wildcards 250 Capitalizing on the Power of Annotations 250 @Before 250
@Pointcut 251 @After 252 @AfterReturning 252 @AfterThrowing 252 @Aspect 253
@Around 253 @DeclareParents 254 Blending AspectJ with Spring 255
Configuring Spring AOP with Annotations 259 Summary 259 CHAPTER 9: SPRING
EXPRESSION LANGUAGE 263 Configuring Applications with SpEL 264 Creating a
Parser 267 Invoking Methods 270 Calling Constructors 272 Calling Static
Methods 272 Working with Variables and Functions 273 #root 273 #this 274
Accessing System Properties and Environment 274 Inline Lists 274
Registering Functions 274 Understanding SpEL Operators 275 Relational
Operators 276 Arithmetic Operators 276 Logical Operators 276 Conditional
Operators 277 Regular Expression Operator 278 Safe Navigation Operator 278
Collection Selection and Projection 279 Selecting the First and Last
Element of a Collection 280 Using Utilities in SpEL 280 Accessing Spring
Beans 280 281 Expressions in Caching 281 Summary 281 CHAPTER 10: CACHING
285 Building Your First Caching Application 286 Configuring the Cache
Manager with a Different Name 289 Configuring the Caching Abstraction with
Annotations 289 Working with Cache Annotations 290 @Cacheable 290 Key
Generator 291 Conditional Caching 291 @CacheEvict 292 @CachePut 292
@Caching 293 Implementing Cache Managers 293 SimpleCacheManager 293
NoOpCacheManager 294 ConcurrentMapCacheManager 294 CompositeCacheManager
294 Casting Your SpEL on Caches 295 Initializing Your Caches
Programmatically 296 Finding Alternative Cache Providers 298 Ehcache 299
Guava 302 Hazelcast 302 Summary 303 CHAPTER 11: RESTFUL WEB SERVICES WITH
SPRING 305 Creating Your First REST Web Service 306 Returning Different
HTTP Status Codes from REST Web Service 318 Learning an Annotation?]Based
Configuration Alternative 318 Using REST Web Services with XML 320 Using
the Exception Handling Mechanism 322 Unit Testing RESTful Services 326
Summary 328 CHAPTER 12: SECURING WEB APPLICATIONS WITH SPRING SECURITY 331
Why Spring Security? 332 Features of Spring Security 333 Configuring and
Using Spring Security 334 Understanding the Fundamental Building Blocks of
Spring Security 340 Authenticating Users 341 Unsuccessful Login Flow 342
Successful Login Flow 342 Anonymous Authentication 344 Customizing the
Login Page 344 Logout Process 346 Accessing UserDetails Using JDBC 346
Encrypting Passwords 349 Remember?]Me Support 350 User Session Management
351 Basic Authentication 352 Authorizing Web Requests and Service Method
Calls 353 Authorizing Web Requests 353 How Does Authorization Work? 355
Expression?]Based Authorization 357 Using JSP Security Tags 358 Authorize
Tag 359 Authenticate Tag 359 Authorizing Service Methods 359 Summary 364
CHAPTER 13: NEXT STOP: SPRING 4.0 369 Keeping Up with the Latest: Java 8
and Java EE7 Support 370 Lambda Expressions 370 Method References 373 Bean
Validation Integration 374 JSR 310: Date Time Value Type Support 374
Configuring Injection with Conditional Dependency 374 Ordering the Elements
of Autowired Collections 377 Repeating Annotations 379 Introducing New
Annotations 381 Documenting with @Description 381 Using the @RestController
Annotation 382 Summary 382 APPENDIX: SOLUTIONS TO EXERCISES 385 INDEX 425
LIGHTWEIGHT CONTAINERS, AND INVERSION OF CONTROL 1 POJO Programming Model 2
Problems of the Old EJB Programming Model 2 Benefits of the POJO
Programming Model 7 Lightweight Containers and Inversion of Control (IoC) 8
Lightweight Containers 8 Inversion of Control (IoC) 9 Dependency Injection
10 Setter Injection 11 Constructor Injection 11 Setter or Constructor
Injection 12 Summary 12 CHAPTER 2: DEPENDENCY INJECTION WITH SPRING 17
Spring IoC Container 18 Configuration Metadata 18 Configuring and Using the
Container 21 Dependency Injection 29 Setter Injection 30 Constructor
Injection 31 Circular Dependencies 34 Dependency Resolution Process 35
Overriding Bean Definitions 36 Using the depends?]on Attribute 38
Autowiring 39 Bean Lookups 43 Spring?]Managed Beans 44 Naming Beans 44 Bean
Instantiation Methods 45 Bean Scopes 48 Lazy Initialization 51 Life-Cycle
Callbacks 52 Bean Definition Profiles 54 Environment 56 Summary 59 CHAPTER
3: BUILDING WEB APPLICATIONS USING SPRING MVC 63 Learning the Features and
Benefits of Spring MVC 64 Using the Dispatcher Servlet Mechanism 65
Defining the Servlet 66 Accessing Servlet Context 67 Creating Your First
Spring MVC Application 68 Configuring Spring MVC with Annotations 71
Handling Forms with JSP 73 Configuring the Form Tag Library 73
Understanding the Power of Binding 74 Working with Forms 74 Using Input
Elements 75 Entering Dates 76 Selecting from a Drop?]Down 77 Selecting with
Radio Buttons 78 Selecting with Checkboxes 78 Adding Labels 78 Placing
Buttons 79 Styling 79 Exploiting the Power of Annotations 84 @Controller 84
@RequestMapping 84 @ModelAttribute 84 @PathVariable 85 @ControllerAdvice 85
@InitBinder 85 @ExceptionHandler 85 Validating User Input 86 Uploading
Files 90 Handling Exceptions 93 Implementing Internationalization (i18n) 95
Using Themes 97 Summary 100 CHAPTER 4: JDBC DATA ACCESS WITH SPRING 103
Problems with Using Vanilla JDBC 104 Introducing Spring's JDBC Support 105
Managing JDBC Connections 105 Embedded DB Support 108 Using a
Connection?]Pooled DataSource 110 Initializing DB 111 Configuring and Using
Spring's JDBC Support 112 Performing Data Access Operations with Spring 114
Running Queries 114 Queries with Named Parameters 117 Writing Queries Using
the IN Clause 118 Using PreparedStatements within JdbcTemplate 119
Inserting, Updating, and Deleting Records 121 Calling Stored Procedures and
Stored Functions 124 Performing Batch Operations 126 Handling BLOB and CLOB
Objects 126 Accessing Vendor?]Specific JDBC Methods 127 Executing DDL
Operations 127 Modeling JDBC Operations as Java Objects 128 Encapsulating
SQL Query Executions 128 Encapsulating SQL DML Operations 130 Encapsulating
Stored Procedure Executions 131 Exception Handling and Error Code
Translation 132 Common Data Access Exception Hierarchy 132 Automatic
Handling and Translation of SQLException 132 Summary 133 CHAPTER 5: DATA
ACCESS WITH JPA USING SPRING 137 Brief Introduction to ORM and JPA 138
Paradigm Mismatch 138 Building Blocks of an ORM Framework 139 What JPA
Offers 139 Mapping the Object Model to the Relational Model 140 Defining
Entities 140 Mapping Attributes to Columns 141 Creating Associations
between Objects 142 Mapping Java Types to SQL Types 145 Configuring and
Using JPA 147 Performing CRUD Operations on Objects 150 Querying with
Object Query Language 155 Spring's JPA Support 156 Setting Up JPA in Spring
Container 156 Implementing DAOs Based on Plain JPA 161 Handling and
Translating Exceptions 166 Further JPA Configuration in Spring Environment
167 JpaDialect 168 JpaVendorAdapter 168 JPA and Load Time Weaving 169
Dealing with Multiple Persistence Units 170 Summary 171 CHAPTER 6: MANAGING
TRANSACTIONS WITH SPRING 175 Understanding Transaction Management 176
Spring's Transaction Abstraction Model 180 Local versus Global Transactions
182 PlatformTransactionManager Implementations 182 Advantages of Spring's
Abstract Transaction Model 183 Declarative Transaction Management with
Spring 183 Isolating the Service Layer from Data Access Technology Details
186 Customizing Default Transactional Behavior 189 Using @Transactional on
the Class Level 190 Understanding Transaction Propagation Rules 191
Propagation REQUIRED 191 Propagation REQUIRES_NEW 192 Propagation NESTED
192 Propagation SUPPORTS 192 Propagation NOT_SUPPORTED 192 Propagation
NEVER 193 Propagation MANDATORY 193 Using for Declarative Transaction
Management 195 Programmatic Transaction Management with Spring 197 Using
the PlatformTransactionManager Approach 201 Executing Custom Logic Before
or After Transactions 203 Advising Transactional Operations 203 Executing
Logic after Transactions Using TransactionSynchronization 204 Summary 205
CHAPTER 7: TEST?]DRIVEN DEVELOPMENT WITH SPRING 209 Configuring and Caching
ApplicationContext 210 Using XML?] and Java?]Based Context Configuration in
Tests 210 Confi guring Context with ApplicationContextInitializer 214
Inheriting Context Configuration 214 ApplicationContext Caching 216
Injecting Dependencies of Test Fixtures 217 Using Transaction Management in
Tests 219 Testing Web Applications 222 Context Hierarchies in Tests 225
Testing Request?] and Session?]Scoped Beans 225 Testing Spring MVC Projects
227 Testing Controllers 227 Testing Form Submit 228 Testing Exception
Handlers 230 Printing Mock Request and Response 231 Using Mock Objects and
Other Utilities for Testing 231 Spring Provided Mock Objects for Testing
231 Other Utilities and Test Annotations 232 Summary 233 CHAPTER 8:
ASPECT?]ORIENTED PROGRAMMING WITH SPRING 237 Getting Started with AOP with
Spring 239 Becoming Familiar with Types of Advices 243 Before 245 After
Returning 245 After Throwing 245 After (Finally) 246 Around 247 Defining
Point?]Cut Designators 248 The Type Signature Expressions 248 The Method
Signature Expressions 249 Other Alternative Point?]Cut Designators 249
Wildcards 250 Capitalizing on the Power of Annotations 250 @Before 250
@Pointcut 251 @After 252 @AfterReturning 252 @AfterThrowing 252 @Aspect 253
@Around 253 @DeclareParents 254 Blending AspectJ with Spring 255
Configuring Spring AOP with Annotations 259 Summary 259 CHAPTER 9: SPRING
EXPRESSION LANGUAGE 263 Configuring Applications with SpEL 264 Creating a
Parser 267 Invoking Methods 270 Calling Constructors 272 Calling Static
Methods 272 Working with Variables and Functions 273 #root 273 #this 274
Accessing System Properties and Environment 274 Inline Lists 274
Registering Functions 274 Understanding SpEL Operators 275 Relational
Operators 276 Arithmetic Operators 276 Logical Operators 276 Conditional
Operators 277 Regular Expression Operator 278 Safe Navigation Operator 278
Collection Selection and Projection 279 Selecting the First and Last
Element of a Collection 280 Using Utilities in SpEL 280 Accessing Spring
Beans 280 281 Expressions in Caching 281 Summary 281 CHAPTER 10: CACHING
285 Building Your First Caching Application 286 Configuring the Cache
Manager with a Different Name 289 Configuring the Caching Abstraction with
Annotations 289 Working with Cache Annotations 290 @Cacheable 290 Key
Generator 291 Conditional Caching 291 @CacheEvict 292 @CachePut 292
@Caching 293 Implementing Cache Managers 293 SimpleCacheManager 293
NoOpCacheManager 294 ConcurrentMapCacheManager 294 CompositeCacheManager
294 Casting Your SpEL on Caches 295 Initializing Your Caches
Programmatically 296 Finding Alternative Cache Providers 298 Ehcache 299
Guava 302 Hazelcast 302 Summary 303 CHAPTER 11: RESTFUL WEB SERVICES WITH
SPRING 305 Creating Your First REST Web Service 306 Returning Different
HTTP Status Codes from REST Web Service 318 Learning an Annotation?]Based
Configuration Alternative 318 Using REST Web Services with XML 320 Using
the Exception Handling Mechanism 322 Unit Testing RESTful Services 326
Summary 328 CHAPTER 12: SECURING WEB APPLICATIONS WITH SPRING SECURITY 331
Why Spring Security? 332 Features of Spring Security 333 Configuring and
Using Spring Security 334 Understanding the Fundamental Building Blocks of
Spring Security 340 Authenticating Users 341 Unsuccessful Login Flow 342
Successful Login Flow 342 Anonymous Authentication 344 Customizing the
Login Page 344 Logout Process 346 Accessing UserDetails Using JDBC 346
Encrypting Passwords 349 Remember?]Me Support 350 User Session Management
351 Basic Authentication 352 Authorizing Web Requests and Service Method
Calls 353 Authorizing Web Requests 353 How Does Authorization Work? 355
Expression?]Based Authorization 357 Using JSP Security Tags 358 Authorize
Tag 359 Authenticate Tag 359 Authorizing Service Methods 359 Summary 364
CHAPTER 13: NEXT STOP: SPRING 4.0 369 Keeping Up with the Latest: Java 8
and Java EE7 Support 370 Lambda Expressions 370 Method References 373 Bean
Validation Integration 374 JSR 310: Date Time Value Type Support 374
Configuring Injection with Conditional Dependency 374 Ordering the Elements
of Autowired Collections 377 Repeating Annotations 379 Introducing New
Annotations 381 Documenting with @Description 381 Using the @RestController
Annotation 382 Summary 382 APPENDIX: SOLUTIONS TO EXERCISES 385 INDEX 425