Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Spring recipes
Nội dung xem thử
Mô tả chi tiết
THE EXPERT’S VOICE® IN OPEN SOURCE
Gary Mak, Josh Long, and Daniel Rubio
Covers
Spring
Framework 3
Learn to use the full power of Spring 3 through coding recipes!
SECOND EDITION
Spring
Recipes
A Problem-Solution Approach
www.it-ebooks.info
www.it-ebooks.info
Spring Recipes
Second Edition
■ ■ ■
Gary Mak
Josh Long
Daniel Rubio
www.it-ebooks.info
Spring Recipes, Second Edition
Copyright © 2010 by Gary Mak, Josh Long, and Daniel Rubio
All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording, or by any information storage or retrieval
system, without the prior written permission of the copyright owner and the publisher.
ISBN-13 (pbk): 978-1-4302-2499-0
ISBN-13 (electronic): 978-1-4302-2500-3
Printed and bound in the United States of America 9 8 7 6 5 4 3 2 1
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol
with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only
in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of
the trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are
not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject
to proprietary rights.
President and Publisher: Paul Manning
Lead Editor: Tom Welsh
Technical Reviewer: Manuel Jordan, Mario Gray and Greg Turnquist
Editorial Board: Clay Andres, Steve Anglin, Mark Beckner, Ewan Buckingham, Gary Cornell,
Jonathan Gennick, Jonathan Hassell, Michelle Lowman, Matthew Moodie, Duncan Parkes,
Jeffrey Pepper, Frank Pohlmann, Douglas Pundick, Ben Renow-Clarke, Dominic Shakeshaft,
Matt Wade, Tom Welsh
Coordinating Editor: Laurin Becker
Copy Editor: Mary Ann Fugate, Heather Lang
Production Support: Patrick Cunningham
Indexer: BIM Indexing & Proofreading Services
Artist: April Milne
Cover Designer: Anna Ishchenko
Distributed to the book trade worldwide by Springer Science+Business Media, LLC.,
233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505,
e-mail [email protected], or visit www.springeronline.com.
For information on translations, please e-mail [email protected], or visit www.apress.com.
Apress and friends of ED books may be purchased in bulk for academic, corporate, or promotional use.
eBook versions and licenses are also available for most titles. For more information, reference our
Special Bulk Sales–eBook Licensing web page at www.apress.com/info/bulksales.
The information in this book is distributed on an “as is” basis, without warranty. Although every
precaution has been taken in the preparation of this work, neither the author(s) nor Apress shall have
any liability to any person or entity with respect to any loss or damage caused or alleged to be caused
directly or indirectly by the information contained in this work.
The source code for this book is available to readers at www.apress.com. You will need to answer
questions pertaining to this book in order to successfully download the code.
www.it-ebooks.info
To my parents, Clark Long and Kathleen MacDonald
–Josh Long
To my family
–Daniel Rubio
www.it-ebooks.info
iv
Contents at a Glance
About the Author ................................................................................................ xxxvii
About the Technical Reviewers ......................................................................... xxxviii
Acknowledgments ............................................................................................... xxxix
Introduction .............................................................................................................. xli
■Chapter 1: Introduction to Spring ............................................................................ 1
■Chapter 2: Advanced Spring IoC Container ........................................................... 61
■Chapter 3: Spring AOP and AspectJ Support ....................................................... 117
■Chapter 4: Scripting in Spring ............................................................................. 159
■Chapter 5: Spring Security .................................................................................. 171
■Chapter 6: Integrating Spring with Other Web Frameworks ............................... 219
■Chapter 7: Spring Web Flow ................................................................................ 249
■Chapter 8: Spring @MVC ..................................................................................... 297
■Chapter 9: Spring REST ........................................................................................ 371
■Chapter 10: Spring and Flex ................................................................................ 405
■Chapter 11: Grails ................................................................................................ 459
■Chapter 12: Spring Roo ........................................................................................ 501
■Chapter 13: Spring Testing .................................................................................. 525
■Chapter 14: Spring Portlet MVC Framework ....................................................... 569
■Chapter 15: Data Access...................................................................................... 597
www.it-ebooks.info
■ CONTENTS AT A GLANCE
v
■Chapter 16: Transaction Management in Spring ................................................. 663
■Chapter 17: EJB, Spring Remoting, and Web Services ........................................ 707
■Chapter 18: Spring in the Enterprise ................................................................... 765
■Chapter 19: Messaging ........................................................................................ 803
■Chapter 20: Spring Integration ............................................................................ 829
■Chapter 21: Spring Batch .................................................................................... 875
■Chapter 22: Spring on the Grid ............................................................................ 909
■Chapter 23: jBPM and Spring .............................................................................. 935
■Chapter 24: OSGi and Spring ............................................................................... 959
Index ....................................................................................................................... 985
www.it-ebooks.info
vi
Contents
About the Authors ............................................................................................... xxxvii
About the Technical Reviewers ......................................................................... xxxviii
Acknowledgments ............................................................................................... xxxix
Introduction .............................................................................................................. xli
■Chapter 1: Introduction to Spring ............................................................................ 1
1-1. Instantiating the Spring IoC Container ........................................................................ 1
Problem .................................................................................................................................................... 1
Solution .................................................................................................................................................... 1
How It Works ............................................................................................................................................ 3
1-2. Configuring Beans in the Spring IoC Container .......................................................... 4
Problem .................................................................................................................................................... 4
Solution .................................................................................................................................................... 4
How It Works ............................................................................................................................................ 5
1-3. Creating Beans by Invoking a Constructor ............................................................... 14
Problem .................................................................................................................................................. 14
Solution .................................................................................................................................................. 15
How It Works .......................................................................................................................................... 15
1-4. Resolving Constructor Ambiguity ............................................................................. 18
Problem .................................................................................................................................................. 18
Solution .................................................................................................................................................. 18
How It Works .......................................................................................................................................... 18
www.it-ebooks.info
■ CONTENTS
vii
1-5. Specifying Bean References .................................................................................... 21
Problem .................................................................................................................................................. 21
Solution .................................................................................................................................................. 21
How It Works .......................................................................................................................................... 21
1-6. Specifying the Data Type for Collection Elements .................................................... 25
Problem .................................................................................................................................................. 25
Solution .................................................................................................................................................. 25
How It Works .......................................................................................................................................... 25
1-7. Creating Beans Using Spring’s FactoryBean ............................................................ 28
Problem .................................................................................................................................................. 28
Solution .................................................................................................................................................. 28
How It Works .......................................................................................................................................... 28
1-8. Defining Collections Using Factory Beans and the Utility Schema ........................... 30
Problem .................................................................................................................................................. 30
Solution .................................................................................................................................................. 30
How It Works .......................................................................................................................................... 30
1-9. Checking Properties with Dependency Checking ..................................................... 32
Problem .................................................................................................................................................. 32
Solution .................................................................................................................................................. 32
How It Works .......................................................................................................................................... 33
1-10. Checking Properties with the @Required Annotation ............................................ 35
Problem .................................................................................................................................................. 35
Solution .................................................................................................................................................. 35
How It Works .......................................................................................................................................... 35
1-11. Auto-Wiring Beans with XML Configuration ........................................................... 38
Problem .................................................................................................................................................. 38
Solution .................................................................................................................................................. 38
How It Works .......................................................................................................................................... 39
www.it-ebooks.info
■ CONTENTS
viii
1-12. Auto-Wiring Beans with @Autowired and @Resource ........................................... 42
Problem .................................................................................................................................................. 42
Solution .................................................................................................................................................. 42
How It Works .......................................................................................................................................... 43
1-13. Inheriting Bean Configuration ................................................................................. 49
Problem .................................................................................................................................................. 49
Solution .................................................................................................................................................. 49
How It Works .......................................................................................................................................... 50
1-14. Scanning Components from the Classpath ............................................................ 53
Problem .................................................................................................................................................. 53
Solution .................................................................................................................................................. 53
How It Works .......................................................................................................................................... 53
Summary ......................................................................................................................... 58
■Chapter 2: Advanced Spring IoC Container ........................................................... 61
2-1. Creating Beans by Invoking a Static Factory Method ............................................... 61
Problem .................................................................................................................................................. 61
Solution .................................................................................................................................................. 61
How It Works .......................................................................................................................................... 61
2-2. Creating Beans by Invoking an Instance Factory Method ........................................ 62
Problem .................................................................................................................................................. 62
Solution .................................................................................................................................................. 63
How It Works .......................................................................................................................................... 63
2-3. Declaring Beans from Static Fields .......................................................................... 64
Problem .................................................................................................................................................. 64
Solution .................................................................................................................................................. 64
How It Works .......................................................................................................................................... 64
2-4. Declaring Beans from Object Properties .................................................................. 66
Problem .................................................................................................................................................. 66
Solution .................................................................................................................................................. 66
How It Works .......................................................................................................................................... 66
www.it-ebooks.info
■ CONTENTS
ix
2-5. Using the Spring Expression Language .................................................................... 68
Problem .................................................................................................................................................. 68
Solution .................................................................................................................................................. 68
How It Works .......................................................................................................................................... 68
2-6. Setting Bean Scopes ................................................................................................ 74
Problem .................................................................................................................................................. 74
Solution .................................................................................................................................................. 74
How It Works .......................................................................................................................................... 74
2-7. Customizing Bean Initialization and Destruction ...................................................... 77
Problem .................................................................................................................................................. 77
Solution .................................................................................................................................................. 77
How It Works .......................................................................................................................................... 77
2-8. Reducing XML Configuration with Java Config ........................................................ 82
Problem .................................................................................................................................................. 82
Solution .................................................................................................................................................. 82
How It Works .......................................................................................................................................... 82
2-9. Making Beans Aware of the Container ..................................................................... 86
Problem .................................................................................................................................................. 86
Solution .................................................................................................................................................. 86
How It Works .......................................................................................................................................... 87
2-10. Loading External Resources ................................................................................... 88
Problem .................................................................................................................................................. 88
Solution .................................................................................................................................................. 88
How It Works .......................................................................................................................................... 89
2-11. Creating Bean Post Processors .............................................................................. 91
Problem .................................................................................................................................................. 91
Solution .................................................................................................................................................. 91
How It Works .......................................................................................................................................... 92
www.it-ebooks.info
■ CONTENTS
x
2-12. Externalizing Bean Configurations . .......................................................................95
Problem . ................................................................................................................................................ 95
Solution . ................................................................................................................................................ 95
How It Works . ........................................................................................................................................ 95
2-13. Resolving Text Messages . .....................................................................................96
Problem . ................................................................................................................................................ 96
Solution . ................................................................................................................................................ 97
How It Works . ........................................................................................................................................ 97
2-14. Communicating with Application Events . ..............................................................99
Problem . ................................................................................................................................................ 99
Solution . ................................................................................................................................................ 99
How It Works . ........................................................................................................................................ 99
2-15. Registering Property Editors in Spring . ...............................................................102
Problem . .............................................................................................................................................. 102
Solution . .............................................................................................................................................. 102
How It Works . ...................................................................................................................................... 102
2-16. Creating Custom Property Editors . ......................................................................105
Problem . .............................................................................................................................................. 105
Solution . .............................................................................................................................................. 105
How It Works . ...................................................................................................................................... 105
2-17. Concurrency with TaskExecutors . .......................................................................107
Problem . .............................................................................................................................................. 107
Solution . .............................................................................................................................................. 107
How It Works . ...................................................................................................................................... 107
Summary .......................................................................................................................116
■Chapter 3: Spring AOP and AspectJ Support ......................................................117
3-1. Enabling AspectJ Annotation Support in Spring ....................................................117
Problem . .............................................................................................................................................. 117
Solution . .............................................................................................................................................. 118
How It Works . ...................................................................................................................................... 118
www.it-ebooks.info
■ CONTENTS
xi
3-2. Declaring Aspects with AspectJ Annotations ......................................................... 120
Problem ................................................................................................................................................ 120
Solution ................................................................................................................................................ 120
How It Works ........................................................................................................................................ 121
3-3. Accessing the Join Point Information ..................................................................... 126
Problem ................................................................................................................................................ 126
Solution ................................................................................................................................................ 127
How It Works ........................................................................................................................................ 127
3-4. Specifying Aspect Precedence ............................................................................... 128
Problem ................................................................................................................................................ 128
Solution ................................................................................................................................................ 128
How It Works ........................................................................................................................................ 128
3-5. Reusing Pointcut Definitions .................................................................................. 130
Problem ................................................................................................................................................ 130
Solution ................................................................................................................................................ 130
How It Works ........................................................................................................................................ 130
3-6. Writing AspectJ Pointcut Expressions .................................................................... 132
Problem ................................................................................................................................................ 132
Solution ................................................................................................................................................ 132
How It Works ........................................................................................................................................ 133
3-7. Introducing Behaviors to Your Beans ..................................................................... 138
Problem ................................................................................................................................................ 138
Solution ................................................................................................................................................ 138
How It Works ........................................................................................................................................ 138
3-8. Introducing States to Your Beans ........................................................................... 141
Problem ................................................................................................................................................ 141
Solution ................................................................................................................................................ 141
How It Works ........................................................................................................................................ 141
www.it-ebooks.info
■ CONTENTS
xii
3-9. Declaring Aspects with XML-Based Configurations ............................................... 143
Problem ................................................................................................................................................ 143
Solution ................................................................................................................................................ 143
How It Works ........................................................................................................................................ 143
3-10. Load-Time Weaving AspectJ Aspects in Spring ................................................... 146
Problem ................................................................................................................................................ 146
Solution ................................................................................................................................................ 146
How It Works ........................................................................................................................................ 147
3-11. Configuring AspectJ Aspects in Spring ................................................................ 152
Problem ................................................................................................................................................ 152
Solution ................................................................................................................................................ 152
How It Works ........................................................................................................................................ 153
3-12. Injecting Spring Beans into Domain Objects ........................................................ 154
Problem ................................................................................................................................................ 154
Solution ................................................................................................................................................ 154
How It Works ........................................................................................................................................ 154
Summary ....................................................................................................................... 158
■Chapter 4: Scripting in Spring ............................................................................. 159
19-1. Implementing Beans with Scripting Languages ................................................... 159
Problem ................................................................................................................................................ 159
Solution ................................................................................................................................................ 159
How It Works ........................................................................................................................................ 160
19-2. Injecting Spring Beans into Scripts ...................................................................... 164
Problem ................................................................................................................................................ 164
Solution ................................................................................................................................................ 164
How It Works ........................................................................................................................................ 164
19-3. Refreshing Beans from Scripts ............................................................................ 167
Problem ................................................................................................................................................ 167
Solution ................................................................................................................................................ 167
How It Works ........................................................................................................................................ 168
www.it-ebooks.info
■ CONTENTS
xiii
19-4. Defining Script Sources Inline .............................................................................. 168
Problem ................................................................................................................................................ 168
Solution ................................................................................................................................................ 168
How It Works ........................................................................................................................................ 169
Summary ....................................................................................................................... 170
■Chapter 5: Spring Security .................................................................................. 171
5-1. Securing URL Access ............................................................................................. 172
Problem ................................................................................................................................................ 172
Solution ................................................................................................................................................ 172
How It Works ........................................................................................................................................ 173
5-2. Logging In to Web Applications .............................................................................. 183
Problem ................................................................................................................................................ 183
Solution ................................................................................................................................................ 183
How It Works ........................................................................................................................................ 183
5-3. Authenticating Users .............................................................................................. 187
Problem ................................................................................................................................................ 187
Solution ................................................................................................................................................ 188
How It Works ........................................................................................................................................ 188
5-4. Making Access Control Decisions .......................................................................... 199
Problem ................................................................................................................................................ 199
Solution ................................................................................................................................................ 200
How It Works ........................................................................................................................................ 200
5-5. Securing Method Invocations ................................................................................. 203
Problem ................................................................................................................................................ 203
Solution ................................................................................................................................................ 203
How It Works ........................................................................................................................................ 203
5-6. Handling Security in Views ..................................................................................... 206
Problem ................................................................................................................................................ 206
Solution ................................................................................................................................................ 206
How It Works ........................................................................................................................................ 206
www.it-ebooks.info