LIST OF PROGRAMS AND SCRIPTS... IX TABLE OF FIGURES... XIII PREFACE... XVII

Table of Contents LIST OF PROGRAMS AND SCRIPTS ................................................................................... IX TABLE OF FIGURE...
Author: Sharyl Newman
1 downloads 3 Views 505KB Size
Table of Contents

LIST OF PROGRAMS AND SCRIPTS ................................................................................... IX TABLE OF FIGURES ........................................................................................................ XIII PREFACE....................................................................................................................... XVII WHY THIS BOOK ................................................................................................................. XVII WHOM THIS BOOK IS FOR ................................................................................................... XVIII HOW THIS BOOK IS ORGANIZED ............................................................................................ XVIII SOFTWARE AND HARDWARE ................................................................................................ XVIII HOW TO USE THIS BOOK ....................................................................................................... XIX TYPOGRAPHIC CONVENTIONS.................................................................................................. XIX HOW TO REACH THE AUTHOR ................................................................................................ XIX THE BOOK’S WEB SITE .......................................................................................................... XIX ACKNOWLEDGEMENTS ................................................................................................. XXI PART I SETTING THE STAGE .............................................................................................. 1 1

INTRODUCTION TO SPRING FRAMEWORKS ............................................................. 3 1.1

INVERSION OF CONTROL (IOC) AND DEPENDENCY INJECTION (DI)....................................... 3

1.2

SPRING MODULES ..................................................................................................... 4

1.2.1

Core Container ................................................................................................. 4 i

II

CONTENTS

1.2.2

Data Access and Integration ............................................................................ 5

1.2.3

Web .................................................................................................................. 5

1.2.4

Aspect Oriented Programming (AOP) .............................................................. 5

1.2.5

Instrumentation ............................................................................................... 5

1.2.6

Test ................................................................................................................... 5

1.3

SPRING PORTFOLIO .................................................................................................... 6

1.4

SUMMARY ............................................................................................................... 7

RECOMMENDED READING ........................................................................................................ 7 SELF-REVIEW EXERCISES .......................................................................................................... 8 2

SETTING UP A SPRING-BASED SAMPLE ENTERPRISE APPLICATION .......................... 9 2.1

SOBA STACK............................................................................................................ 9

2.2

DIFFERENCES AMONG ORACLE, MYSQL AND SQL SERVER .............................................. 10

2.2.1

Data Types ..................................................................................................... 10

2.2.2

Features Supported ........................................................................................ 11

2.3

SETTING UP MYSQL FOR SOBA................................................................................. 12

2.3.1

SOBA Schema ................................................................................................. 12

2.3.2

SQL Statements for Creating SOBA Objects ................................................... 13

2.4

SETTING UP SOBA ON ECLIPSE .................................................................................. 19

2.4.1

Installing Apache Ant ..................................................................................... 19

2.4.2

Installing Tomcat ............................................................................................ 20

2.4.3

Installing Eclipse ............................................................................................. 21

2.4.4

Importing SOBA .............................................................................................. 21

2.5

CONFIGURING SOBA TO WORK WITH YOUR DATABASE SYSTEM....................................... 24

2.5.1

Configuring SOBA to Work with MySQL 5.5.22 .............................................. 24

2.5.2

Configuring SOBA to Work with SQL Server 2008 R2 ..................................... 25

2.5.3

Configuring SOBA to Work with Oracle 11g R2 .............................................. 25

2.6

BUILDING AND DEPLOYING SOBA .............................................................................. 25

2.7

TESTING SOBA ....................................................................................................... 26

2.7.1

Starting up SOBA ............................................................................................ 27

2.7.2

Testing SOBA 1: Creating New Customers ..................................................... 28

CONTENTS

III

2.7.3

Testing SOBA 2: Posting Transactions ............................................................ 31

2.7.4

Testing SOBA 3: Paying Bills Online ................................................................ 33

2.8

SUMMARY ............................................................................................................. 35

RECOMMENDED READING .......................................................................................... 36 SELF-REVIEW EXERCISES .............................................................................................. 36 PART II SPRING ESSENTIAL ELEMENTS FOR BUILDING ENTERPRISE JAVA APPLICATIONS 37 3

SPRING CORE CONCEPTS ....................................................................................... 39 3.1

THE IOC CONTAINER ................................................................................................ 39

3.1.1

Configuration Metadata ................................................................................ 39

3.1.2

Loading Application Context .......................................................................... 41

3.1.3

Using Beans .................................................................................................... 41

3.2

SPRING BEANS ........................................................................................................ 42

3.2.1

Identifying and Naming Beans ....................................................................... 42

3.2.2

Instantiating Beans ........................................................................................ 43

3.3

DEPENDENCY INJECTION (DI) ..................................................................................... 43

3.3.1

Setter-Based Dependency Injection................................................................ 43

3.3.2

Constructor-Based Dependency Injection ...................................................... 43

3.3.3

Using Depends-On .......................................................................................... 44

3.3.4

Lazy-Initialized Beans ..................................................................................... 44

3.3.5

Autowiring Beans ........................................................................................... 44

3.3.6

Method Injection ............................................................................................ 44

3.4

BEAN SCOPES ......................................................................................................... 45

3.5

SUMMARY ............................................................................................................. 45

RECOMMENDED READING .......................................................................................... 45 SELF-REVIEW EXERCISES .............................................................................................. 46 4

SPRING WEB MVC FRAMEWORK ........................................................................... 47 4.1

ENTERPRISE WEB APPLICATION ARCHITECTURE ............................................................. 47

4.1.1

Data Tier......................................................................................................... 47

4.1.2

Application Tier .............................................................................................. 48

4.1.3

Web Tier ......................................................................................................... 48

CONTENTS

IV

4.1.4

User Tier ......................................................................................................... 48

4.2

MVC ARCHITECTURE IN GENERAL .............................................................................. 49

4.3

SPRING WEB MVC FRAMEWORK ............................................................................... 49

4.3.1

Spring DispatcherServlet and WebApplicationContext .................................. 50

4.3.2

Bootstrapping and DispatcherServlet Defined in web.xml File ...................... 51

4.3.3

Spring Integration with View Technologies .................................................... 54

4.4

PROGRAMMING LOGIC FLOW WITH SPRING WEB MVC FRAMEWORK ............................... 56

4.4.1

A Typical Workflow of SOBA Defined in Spring MVC Framework .................. 56

4.4.2

A JSP Login Page Defining a Web Entry Point ................................................ 57

4.4.3

Handler Mapping ........................................................................................... 59

4.4.4

Implementing Spring Controllers with Annotations ....................................... 62

4.4.5

A Typical View Defined in a Spring MVC Web Form ....................................... 66

4.4.6

A Typical Form Success Controller with Spring ModelAndView ..................... 71

4.4.7

POJOs Referenced in the CreateCustomerFormController ............................. 73

4.5

SUMMARY ............................................................................................................. 75

RECOMMENDED READING .......................................................................................... 75 SELF-REVIEW EXERCISES .............................................................................................. 76 5

SPRING DATA ACCESS FRAMEWORK...................................................................... 77 5.1

DEFINING SPRING DATASOURCES ............................................................................... 77

5.2

IMPLEMENTING DAO WITH JDBC .............................................................................. 80

5.2.1

Defining Domain Objects................................................................................ 80

5.2.2

Defining DAO Interface .................................................................................. 83

5.3

IMPLEMENTING DAO WITH SPRING JDBC TEMPLATE..................................................... 83

5.3.1

JdbcTemplate.query ....................................................................................... 88

5.3.2

JdbcTemplate.queryForObject ....................................................................... 88

5.3.3

JdbcTemplate.queryForList ............................................................................ 88

5.3.4

JdbcTemplate.queryForInt.............................................................................. 88

5.3.5

NamedParameterJdbcTemplate.update ........................................................ 88

5.3.6

NamedParameterJdbcTemplate.batchUpdate .............................................. 89

5.4

SERVICE BEANS ....................................................................................................... 89

CONTENTS

5.5

V

HIBERNATE DATA ACCESS METHOD ............................................................................ 91

5.5.1

Benefits of Using Hibernate ........................................................................... 91

5.5.2

Hibernate Mapping (HBM) ............................................................................. 92

5.5.3

Hibernate Connectivity Configuration ............................................................ 94

5.5.4

Data Access Methods and Transaction Management for Hibernate ............. 95

5.6

SPRING DATA VALIDATION FRAMEWORK ................................................................... 100

5.6.1

Programmatic Logic Flow with the Bill Pay Service ...................................... 101

5.6.2

Spring Validation Interface........................................................................... 103

5.6.3

JSR-303 Bean Validation............................................................................... 105

5.7

UPGRADING SPRING DEPRECATED SIMPLEJDBCDAOSUPPORT TO 3.1 JDBC SUPPORT ....... 106

5.8

SUMMARY ........................................................................................................... 109

RECOMMENDED READING ........................................................................................ 110 SELF-REVIEW EXERCISES ............................................................................................ 110 6

SPRING RESTFUL WEB SERVICES FRAMEWORK .................................................... 113 6.1

INTRODUCTION TO RESTFUL WEB SERVICES ............................................................... 113

6.1.1

Mappings between REST and HTTP.............................................................. 113

6.1.2

RESTful Constraints ...................................................................................... 114

6.1.3

RESTful Interface Design Principles .............................................................. 115

6.2

SPRING’S SUPPORT FOR RESTFUL WEB SERVICES VIA URI TEMPLATE.............................. 115

6.3

SERVER CODE ....................................................................................................... 116

6.4

CLIENT CODE ........................................................................................................ 121

6.5

SUMMARY ........................................................................................................... 125

RECOMMENDED READING ........................................................................................ 125 SELF-REVIEW EXERCISES ............................................................................................ 126 7

SPRING SECURITY FRAMEWORK .......................................................................... 127 7.1

BASIC CONCEPTS ................................................................................................... 127

7.2

CONFIGURING SECURITY IN SPRING SECURITY FRAMEWORK ........................................... 128

7.2.1

Security Configured in web.xml .................................................................... 128

7.2.2

Security Configured in soba-security.xml ..................................................... 128

7.3

IMPLEMENTING SPRING SECURITY IN VIEWS ............................................................... 133

CONTENTS

VI

7.4

SPRING ACL APPLIED TO SOBA ............................................................................... 134

7.4.1

ACL Tables .................................................................................................... 134

7.4.2

Configuring Spring ACL ................................................................................. 135

7.4.3

Maintaining ACLs for SOBA Domain Objects ................................................ 137

7.4.4

Testing ACLs with SOBA ............................................................................... 145

7.5

SUMMARY ........................................................................................................... 150

RECOMMENDED READING ........................................................................................ 151 SELF-REVIEW EXERCISES ............................................................................................ 151 8

SPRING AOP FRAMEWORK .................................................................................. 153 8.1

SOBA ADMIN CONSOLE – A RENDEZVOUS FOR CROSSCUTTING CONCERNS...................... 153

8.1.1

Logging with Log4j for SOBA ........................................................................ 161

8.1.2

Performance Profiling with perfBasic for SOBA ........................................... 164

8.2

SOLVING CROSSCUTTING CONCERNS WITH DYNAMIC PROXY.......................................... 167

8.3

SOLVING CROSSCUTTING CONCERNS WITH SPRING AOP-ASPECTJ SUPPORT ..................... 173

8.3.1

Basic AOP Concepts ...................................................................................... 173

8.3.2

Spring and AspectJ Mixed AOP ..................................................................... 174

8.4

SUMMARY ........................................................................................................... 180

RECOMMENDED READING .................................................................................................... 180 SELF-REVIEW EXERCISES ...................................................................................................... 181 APPENDIX A SPRING RESOURCES ................................................................................. 183 A.1 SPRING TUTORIALS ....................................................................................................... 183 A.2 SPRING DOCUMENTATIONS ............................................................................................ 184 APPENDIX B MYSQL ..................................................................................................... 187 B.1 SETTING UP A MYSQL ENVIRONMENT .............................................................................. 187 B.2 CREATING SOBA DATABASE ON MYSQL .......................................................................... 188 B.3 EXPORTING AND IMPORTING SOBA DATABASE .................................................................. 192 APPENDIX C SQL SERVER 2008 R2 ................................................................................ 193 C.1 SETTING UP A SQL SERVER 2008 R2 ENVIRONMENT .......................................................... 193 C.2 CREATING SOBA DATABASE ON SQL SERVER 2008 R2....................................................... 195 APPENDIX D ORACLE 11G R2 ........................................................................................ 199

CONTENTS

VII

APPENDIX E BUILDING SOBA WITH MAVEN 3 .............................................................. 201 E.1 INTRODUCTION TO MAVEN ............................................................................................. 201 E.2 SETTING UP MAVEN ...................................................................................................... 202 E.3 ENABLING MAVEN ON ECLIPSE ........................................................................................ 202 E.4 IMPORTING SOBA ........................................................................................................ 205 E.5 BUILDING SOBA WITH MAVEN ....................................................................................... 206 E.6 SOBA’S POM.XML CONFIGURATION FILE .......................................................................... 207 APPENDIX F A SIMPLER SAMPLE BUILT WITH SPRING, HIBERNATE, MYSQL AND MAVEN 3 .................................................................................................................................... 213 F.1 CREATING THE SAMPLE DATABASE ................................................................................... 213 F.2 CREATING THE SAMPLE WITH MAVEN ............................................................................... 214 F.3 SAMPLE IMPLEMENTATION HIGHLIGHTS ............................................................................ 226 F.3.1 The Hibernate Piece .......................................................................................... 226 F.3.2 The Service Layer .............................................................................................. 227 F.3.3 The Controller Layer ......................................................................................... 227 F.4 PROGRAMMATIC LOGIC FLOWS ....................................................................................... 227 APPENDIX G DEPLOYING SOBA ON LINUX .................................................................... 229 G.1 INSTALLING A JDK ........................................................................................................ 229 G.2 INSTALLING TOMCAT ..................................................................................................... 230 G.3 INSTALLING MYSQL ..................................................................................................... 230 G.4 DEPLOYING SOBA........................................................................................................ 232 APPENDIX H SOBA ON MAC OS X ................................................................................. 233 H.1 INSTALLING A JDK ........................................................................................................ 233 H.2 INSTALLING TOMCAT ..................................................................................................... 234 H.3 INSTALLING MYSQL ..................................................................................................... 234 H.4 INSTALLING ECLIPSE AND MAVEN .................................................................................... 237 H.5 IMPORTING AND BUILDING SOBA ................................................................................... 237 H.6 DEPLOYING SOBA........................................................................................................ 238 INDEX ........................................................................................................................... 239

Suggest Documents