Spring Persistence with Hibernate

Size: px
Start display at page:

Download "Spring Persistence with Hibernate"

Transcription

1 Spring Persistence with Hibernate PAUL TEPPER FISHER BRIAN D. MURPHY

2 Spring Persistence with Hibernate Copyright 2010 by Paul Tepper Fisher and Brian D. Murphy 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): ISBN-13 (electronic): Printed and bound in the United States of America 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 Editors: Steve Anglin, Tom Welsh Technical Reviewer: Sia Cyrus Editorial Board: 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: Mary Tobin Copy Editor: Marilyn Smith Compositor: Kimberly Burton Indexer: Julie Grady 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 Phone SPRINGER, fax (201) , orders-ny@springersbm.com, or visit For information on translations, please rights@apress.com, or visit 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 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 You will need to answer questions pertaining to this book in order to successfully download the code. ii

3 To Melanie, for making it all worthwhile Paul I would like to dedicate this, my first print book, to my mom. I miss you always Brian

4 Contents at a Glance About the Authors...xii About the Technical Reviewer...xiii Acknowledgments... xiv Preface... xvi Chapter 1: Architecting Your Application with Spring, Hibernate, and Patterns...1 Chapter 2: Spring Basics...17 Chapter 3: Basic Application Setup...33 Chapter 4: Persistence with Hibernate...49 Chapter 5: Domain Model Fundamentals...69 Chapter 6: DAOs and Querying...85 Chapter 7: Transaction Management Chapter 8: Effective Testing Chapter 9: Best Practices and Advanced Techniques Chapter 10: Integration Frameworks Chapter 11: GORM and Grails Chapter 12: Spring Roo Index iv

5 Contents About the Authors...xii About the Technical Reviewer...xiii Acknowledgments... xiv Preface... xv Chapter 1: Architecting Your Application with Spring, Hibernate, and Patterns...1 The Benefit of a Consistent Approach...1 The Significance of Dependency Injection... 2 A Synergistic Partnership...2 The Story of Spring s and Hibernate s Success... 3 A Better Approach for Integration... 3 Best Practices for Architecting an Application... 4 Other Persistence Design Patterns...12 The Template Pattern The Active-Record Pattern Summary...15 Chapter 2: Spring Basics...17 Exploring Spring s Architecture...18 The Application Context Beans, Beans, the Magical Fruit The Spring Life Cycle Understanding Bean Scopes Dependency Injection and Inversion of Control...24 Setter-Based Dependency Injection v

6 CONTENTS Constructor-Based Dependency Injection Instance Collaboration Coding to Interfaces Dependency Injection via Autowiring... Dependency Injection Set It and Forget It! Injecting Code Using AOP and Interceptors...31 Summary...32 Chapter 3: Basic Application Setup...33 Application Management with Maven...33 Managed Dependencies Standard Directory Structure POM Deconstruction Spring Configuration...37 Namespace Support Externalizing Property Configurations Component Scanning Import Statements Database Integration...40 JDBC Support Integration with JNDI Web Application Configuration...43 Servlet Definition Spring MVC Summary...47 Chapter 4: Persistence with Hibernate...49 The Evolution of Database Persistence in Java...49 EJB, JDO, and JPA vi vi

7 CONTENTS How Hibernate Fits In JPA Interface Hierarchy...52 The Art Gallery Domain Model and DAO Structure...54 POJO Simplified DAO Pattern with Generics The Life Cycle of a JPA Entity JPA Configuration...64 Bare-Bones JPA Setup Spring Integration Summary...68 Chapter 5: Domain Model Fundamentals...69 Understanding Associations...69 Building the Domain Model...71 Convention over Configuration Managing Entity Identifiers Using Cascading Options to Establish Data Relationships Adding Second-Level Caching Using Polymorphism with Hibernate Summary...84 Chapter 6: DAOs and Querying...85 A Basic Hibernate DAO Implementation...85 Building a DAO Using Spring s Hibernate Support Classes Enabling Query Caching with the HibernateTemplate Going Template-less Querying in Hibernate...92 Loading an Entity Querying for a Particular Type vii vii

8 CONTENTS Using Named Parameters Querying Using Core Hibernate Using Named Queries Working with Polymorphic Queries Persisting Data with Hibernate...97 Saving and Updating Data Handling Binary Data Understanding the Benefits of the Criteria API Using the JPA 2.0 Criteria API Summary Chapter 7: Transaction Management The Joy of ACID Understanding Isolation Levels Serializable Repeatable Read Read Committed Read Uncommitted Controlling ACID Reflux Platform Transaction Management Declarative Transaction Management Programmatic Transaction Management Transactional Examples Creating a Batch Application Using Two Datasources Summary Chapter 8: Effective Testing Unit, Integration, and Functional Testing Using JUnit for Effective Testing viii viii

9 CONTENTS Unit Testing with Mocks Spring Dependency Injection and Testing Testing with a Database Summary Chapter 9: Best Practices and Advanced Techniques Lazy Loading Issues The N+1 Selects Problem Lazy Initialization Exceptions Caching Integrating a Caching Implementation Caching Your Queries Caching in a Clustered Configuration Summary Chapter 10: Integration Frameworks RESTful Web Services with Spring Nouns, Verbs, and Content-Types Serializing the Object Graph Using the Dreaded DTO Pattern Leveraging Spring 3 s REST Support Marshaling Data with Spring OXM Handling Concurrency Free-Text Search Introducing Lucene Introducing Hibernate Search Putting Lucene and Hibernate in Sync Building a Domain-Specific Search Summary ix ix

10 CONTENTS Chapter 11: GORM and Grails A Crash Course in Groovy Letting Your Types Loose GStrings Strings on Steroids Default Constructors in Groovy Closures in Groovy Getting Grails Running Installing Grails Creating a Grails Application Configuring Your Application Configuring Your Datasource Mapping URLs Defining the Grails Domain Model Adding Constraints and Validation Defining Associations and Properties Customizing Domain Class Hibernate Mappings Using Active Record As an Alternative to DAOs Looking Under the Hood of GORM Working with Dynamic Finder Methods Creating Advanced Query Methods Using the Criteria API Handling Associations in Grails Scaffolding and Building Your Grails Application Defining a Transactional Service Layer in Grails Summary x x

11 CONTENTS Chapter 12: Spring Roo What Roo Is (and What It Is Not) Creating a Domain Model with Roo Getting Started with Roo Creating a New Project Adding Entities Adding Fields Exploring the Automatically Generated Testing Infrastructure Mapping Associations Modeling Inheritance Adding Spring MVC Adding Service Layers and DAOs Now You See Me, Now You Don t Removing Roo Summary Index xi xi

12 About the Authors Paul Tepper Fisher first began working in technology at Johns Hopkins University, where he spent several years developing a distance-learning application for neuroscience, while completing graduate school there. He has founded two technology start-ups: SmartPants Media, Inc., a software development company specializing in interactive multimedia technology; and dialmercury.com, which develops telephony applications using VOIP and Java. Paul was also Manager of Technology at Wired.com, where he led the software development team for the online publications of Wired.com, webmonkey.com, and howto.wired.com, using Spring, Grails, and Java technology. Currently, Paul is Director of Engineering for a new Music Service at Lime Wire, where he manages several development teams using agile methodologies. Comprised of client-side and distributed server-side components, the Music Service is designed for horizontal scalability with a goal of supporting millions of end-users and terabytes of data. You can read Paul s blog at: Brian D. Murphy is the Chief Architect and Director of Engineering at Condé Nast. He was an early adopter of Spring and Hibernate and uses both technologies to power all of Condé s brands online, including wired.com, newyorker.com, epicurious.com, and vanityfair.com, drawing tens of millions of unique visitors each month. Brian deals with the challenges of building scalable, distributed systems every single day. He has a B.S. in Computer Science from Rutgers University. You can follow Brian on Twitter at or read his blog at xii

13 About the Technical Reviewer Sia Cyrus s experience in computing spans many decades and areas of software development. During the 1980s, he specialized in database development in Europe. In the 1990s, he moved to the US where he focused on client-server applications. Since 2000, he has architected a number of middle-tier business processes incorporating Spring and Hibernate. Most recently, he has been specializing in Web 2.0, Ajax, GWT, and Android. Sia is an independent software consultant who is an expert in Java and development of Java enterprise-class applications. He has been responsible for innovative and generic software, holding a US Patent in database-driven user interfaces. Sia created a very successful configuration-based framework for the telecommunications industry, which he later converted to Spring Framework. His passion could be entitled Enterprise Architecture in Open Source. When not experimenting with new technologies, he enjoys playing ice hockey especially with his two boys, Jason and Brandon. He can be reached at sia.cyrus@comcast.net. xiii

14 Acknowledgments Writing a book always ends up being more difficult than you initially imagined. Although the absurdly late nights and lost weekends prove difficult to the authors, it is often the people around them that end up suffering the most. To that end, I d like to thank Melanie Colton for her endless patience and perseverance. She deserves more than a medal for putting up with the many 4am nights and my noisy typing. This book would not have been possible without her support, understanding, and muse. I would also like to acknowledge my colleagues at Lime Company, for their continued trust and support. It is a rare experience to work with such a talented and committed group of people, and I am grateful for the opportunity to be a part of such an important adventure. I d also like to thank Solomon Duskis for starting this journey, and for his unwavering enthusiasm for technology especially Java and Spring. I would be remiss if I didn t offer my appreciation and gratitude to my parents, who have inspired me through their relentless trust, support, and faith in everything I set out to do. Finally, my sincere appreciation goes to Brian Murphy for joining the project and keeping things rolling along. If it hadn t been for Brian s tenacity and motivation, this book would never have seen the light of day. It s been an honor and privilege working with you again. Paul Tepper Fisher We d like to thank Apress for the opportunity to write this book. Special thanks to Steve Anglin for believing in us and letting us stretch the schedule to cover advanced topics in depth. We owe Mary Tobin a special debt of gratitude for shepherding us through this process and ultimately dragging us across the finish line. Thanks to Tom Welsh, Marilyn Smith, and Sia Cyrus, who provided invaluable feedback, suggestions and encouragement along the way. This is a much better book as a result of their wisdom and patience. Any issues or errors in this text are ours alone. I would like to thank my wife, Dania, without whom this book wouldn t be possible. She graciously took on the role of super mom while I devoted nights and weekends to writing for far longer than bargained for. I d like to thank my son Liam for being the most terrific little kid. You provide me with more joy and a new appreciation for the world than you ll ever know. I d also like to acknowledge our second son, who is due shortly after this book will be published. I can t wait to meet you! Lastly, I d like to thank Paul Fisher for sharing this experience with me. This book was Paul s brainchild and I m glad he invited me along for the ride. Writing this book has been both rewarding and challenging. I learned a ton and it s been great to work with you again. Brian D. Murphy xiv

15 Preface Since its inception, the Spring Framework has gradually changed the rules of application development in the Java community. This book is the ideal guide and teaching companion for developers interested in learning about the Spring Framework and how it can be leveraged to build persistence-driven applications using Hibernate, one of the most popular Java persistence frameworks today. Spring Persistence with Hibernate gets you rolling with fundamental Spring concepts, as well as proven design patterns for integrating persistence into your applications. Many of the lessons illustrated in this book were culled from years of practical experience building scalable, high-volume web applications using Spring and Hibernate. One of the details that stands out in our joint experience is the importance and benefit of learning through hands-on experience. To this end, we will build a real-world application that utilizes Spring 3, Hibernate 3.5, JPA 2.0, Hibernate-Search, Grails, Spring Roo, and Dozer. We firmly believe that learning about Spring and Hibernate implies far more than simply understanding the respective APIs of each framework. To be able to effectively develop with these two amazing technologies, it is necessary to understand the design patterns and best practices for getting the best from these frameworks, and building on them in a consistent, proven manner. We hope this book will teach you more than just how to use Spring and Hibernate together. Our goal is to channel the development experience, lessons, and best practices we ve seen work successfully in our experience, so that you can apply these skills and tools in your own applications. Throughout these pages, we will introduce core Hibernate fundamentals, demonstrating how the framework can be best utilized within a Spring context. We will start with foundational concepts, such as strategies for developing an effective domain model and DAO layer, and then move into querying techniques using HQL, JPQL, and the Criteria API. After fundamental concepts are introduced, we will move on to more advanced topics, such as fetching and caching strategies. We will also illustrate several approaches for architecting a transactional service facade. Both programmatic and declarative transactions will be examined, showcasing the benefits of using Spring for expressing transactional semantics. Spring Persistence with Hibernate will also introduce JPA, covering its history and the ways in which Hibernate influenced its development. We will discuss the benefits of following the JPA standard, as well as when it makes sense to utilize Hibernate-specific features. The book will also introduce Grails and GORM, illustrating the differences between the DAO and Active Record patterns. We will port our sample application (which will be developed in the course of the book) into both Grails and Spring Roo, highlighting the benefits and differences of using a rapid-development, convention-over-configuration platform. In these sections, we will explore topics related to concurrency/optimistic locking, Hibernate Session state, caching approaches, and transaction management. The last part of the book will introduce several advanced techniques, important for working with enterprise Spring/Hibernate applications. We will illustrate some of the pitfalls with integrating legacy databases, as well as best practices for developing REST web services, handling Hibernate proxies and lazy collections, as well as building search functionality using Hibernate-Search. Here are some of the main topics we will discuss in this book: xv

16 PREFACE CONTENTS Basic Spring Framework features such as IoC and AOP Core concepts for architecting a well-layered persistence tier JPA concepts and steps for integrating JPA Foundational and advanced concepts for working with Hibernate Hibernate querying techniques DAO and Service Facade layer development Grails, along with the introduction of Active-Record Pattern Introduction of Spring Roo Building a REST web service Translating between a domain model and a DTO using Dozer Leveraging other frameworks and technologies, such as Hibernate-Search Advanced Caching and Integration strategies xvi xvi

Spring Persistence. with Hibernate PAUL TEPPER FISHER BRIAN D. MURPHY

Spring Persistence. with Hibernate PAUL TEPPER FISHER BRIAN D. MURPHY Spring Persistence with Hibernate PAUL TEPPER FISHER BRIAN D. MURPHY About the Authors About the Technical Reviewer Acknowledgments xii xiis xiv Preface xv Chapter 1: Architecting Your Application with

More information

Contents. Chapter 1: Introducing Spring Persistence...1 Persistence...2 Spring as a de Facto Standard...4

Contents. Chapter 1: Introducing Spring Persistence...1 Persistence...2 Spring as a de Facto Standard...4 Contents Chapter 1: Introducing Spring Persistence...1 Persistence...2 Spring as a de Facto Standard...4 Spring and JavaBeans... 5 Inversion of Control and Dependency Injection... 10 Exploring Spring Design

More information

Pro.NET 4 Parallel Programming in C#

Pro.NET 4 Parallel Programming in C# Pro.NET 4 Parallel Programming in C# Adam Freeman Pro.NET 4 Parallel Programming in C# Copyright 2010 by Adam Freeman All rights reserved. No part of this work may be reproduced or transmitted in any form

More information

Spring. Hibernate. Persistence with. Paul Tepper Fisher and Brian D. Murphy THE EXPERT S VOICE IN OPEN SOURCE

Spring. Hibernate. Persistence with. Paul Tepper Fisher and Brian D. Murphy THE EXPERT S VOICE IN OPEN SOURCE THE EXPERT S VOICE IN OPEN SOURCE Covers Spring 3, Hibernate 3.5, Grails, and Roo! Spring Persistence with Hibernate Guides you through the essential aspects and best practices of building a real application,

More information

Companion ebook Available Pro Android Includes Android 1.5 SOURCE CODE ONLINE US $44.99

Companion ebook Available Pro Android Includes Android 1.5 SOURCE CODE ONLINE US $44.99 The EXPERT s VOIce in Open Source Pro Android Covers Google s Android Platform and its fundamental APIs, from basic concepts such as Android resources, intents, and content providers to advanced topics

More information

Objective-C Quick Syntax Reference

Objective-C Quick Syntax Reference Objective-C Quick Syntax Reference Matthew Campbell Objective-C Quick Syntax Reference Copyright 2014 by Matthew Campbell This work is subject to copyright. All rights are reserved by the Publisher, whether

More information

Beginning Silverlight 3

Beginning Silverlight 3 Beginning Silverlight 3 From Novice to Professional Robert Lair Beginning Silverlight 3: From Novice to Professional Copyright 2009 by Robert Lair All rights reserved. No part of this work may be reproduced

More information

Python 3 for Absolute Beginners

Python 3 for Absolute Beginners Python 3 for Absolute Beginners Tim Hall and J-P Stacey Python 3 for Absolute Beginners Copyright 2009 by Tim Hall and J-P Stacey All rights reserved. No part of this work may be reproduced or transmitted

More information

MATLAB Programming for Numerical Analysis. César Pérez López

MATLAB Programming for Numerical Analysis. César Pérez López MATLAB Programming for Numerical Analysis César Pérez López MATLAB Programming for Numerical Analysis Copyright 2014 by César Pérez López This work is subject to copyright. All rights are reserved by the

More information

Windows 10 Revealed. The Universal Windows Operating System for PC, Tablets, and Windows Phone. Kinnary Jangla

Windows 10 Revealed. The Universal Windows Operating System for PC, Tablets, and Windows Phone. Kinnary Jangla Windows 10 Revealed The Universal Windows Operating System for PC, Tablets, and Windows Phone Kinnary Jangla Windows 10 Revealed Kinnary Jangla Bing Maps San Francisco, California, USA ISBN-13 (pbk): 978-1-4842-0687-4

More information

C++ Quick Syntax Reference

C++ Quick Syntax Reference C++ Quick Syntax Reference Mikael Olsson C++ Quick Syntax Reference Copyright 2013 by Mikael Olsson This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part

More information

Practical Spring LDAP

Practical Spring LDAP Practical Spring LDAP Enterprise Java LDAP Development Made Easy Balaji Varanasi Practical Spring LDAP: Enterprise Java LDAP Development Made Easy Copyright 2013 Balaji Varanasi. All rights reserved. This

More information

Pro SQL Server 2008 Mirroring

Pro SQL Server 2008 Mirroring Pro SQL Server 2008 Mirroring Robert L. Davis, Ken Simmons Pro SQL Server 2008 Mirroring Copyright 2009 by Robert L. Davis, Ken Simmons All rights reserved. No part of this work may be reproduced or transmitted

More information

Pro Data Backup and Recovery. Steven Nelson

Pro Data Backup and Recovery. Steven Nelson Pro Data Backup and Recovery Steven Nelson Pro Data Backup and Recovery Copyright 2011 by Steven Nelson All rights reserved. No part of this work may be reproduced or transmitted in any form or by any

More information

Building Spring 2 Enterprise Applications

Building Spring 2 Enterprise Applications Building Spring 2 Enterprise Applications Interface 21 with Bram Smeets and Seth Ladd Building Spring 2 Enterprise Applications Copyright 2007 by Interface 21, Bram Smeets, Seth Ladd All rights reserved.

More information

Functional Programming in R

Functional Programming in R Functional Programming in R Advanced Statistical Programming for Data Science, Analysis and Finance Thomas Mailund Functional Programming in R: Advanced Statistical Programming for Data Science, Analysis

More information

Pro SQL Server 2008 Policy-Based Management. Ken Simmons Colin Stasiuk Jorge Segarra

Pro SQL Server 2008 Policy-Based Management. Ken Simmons Colin Stasiuk Jorge Segarra Pro SQL Server 2008 Policy-Based Management Ken Simmons Colin Stasiuk Jorge Segarra PRO SQL SERVER 2008 POLICY-BASED MANAGEMENT Copyright 2010 by Ken Simmons, Colin Stasiuk, Jorge Segarra All rights reserved.

More information

Pro JavaScript Performance Monitoring and Visualization

Pro JavaScript Performance Monitoring and Visualization Pro JavaScript Performance Monitoring and Visualization Tom Barker Pro JavaScript Performance Copyright 2012 by Tom Barker This work is subject to copyright. All rights are reserved by the Publisher, whether

More information

Excel 2010 Made Simple

Excel 2010 Made Simple Excel 2010 Made Simple Abbott Katz i Excel 2010 Made Simple Copyright 2011 by Abbott Katz All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic

More information

JavaScript Quick Syntax Reference

JavaScript Quick Syntax Reference JavaScript Quick Syntax Reference Mikael Olsson JavaScript Quick Syntax Reference Copyright 2015 by Mikael Olsson This work is subject to copyright. All rights are reserved by the Publisher, whether the

More information

Building Custom Tasks for SQL Server Integration Services

Building Custom Tasks for SQL Server Integration Services Building Custom Tasks for SQL Server Integration Services Andy Leonard Building Custom Tasks for SQL Server Integration Services Andy Leonard Farmville, Virginia, USA ISBN-13 (pbk): 978-1-4842-2939-2 ISBN-13

More information

Agile Swift. Swift Programming Using Agile Tools and Techniques. Godfrey Nolan

Agile Swift. Swift Programming Using Agile Tools and Techniques. Godfrey Nolan Agile Swift Swift Programming Using Agile Tools and Techniques Godfrey Nolan Agile Swift: Swift Programming Using Agile Tools and Techniques Godfrey Nolan Huntington Woods, Michigan, USA ISBN-13 (pbk):

More information

Foundation Flash Catalyst. Greg Goralski LordAlex Leon

Foundation Flash Catalyst. Greg Goralski LordAlex Leon Foundation Flash Catalyst Greg Goralski LordAlex Leon Foundation Flash Catalyst Copyright 2010 by Gerg Goralski and LordAlex Leon All rights reserved. No part of this work may be reproduced or transmitted

More information

Java Quick Syntax Reference. Second Edition. Mikael Olsson

Java Quick Syntax Reference. Second Edition. Mikael Olsson Java Quick Syntax Reference Second Edition Mikael Olsson Java Quick Syntax Reference Second Edition Mikael Olsson Java Quick Syntax Reference Mikael Olsson Hammarland, Länsi-Suomi, Finland ISBN-13 (pbk):

More information

Swift Quick Syntax Reference

Swift Quick Syntax Reference Swift Quick Syntax Reference Matthew Campbell Swift Quick Syntax Reference Copyright 2014 by Matthew Campbell This work is subject to copyright. All rights are reserved by the Publisher, whether the whole

More information

C Quick Syntax Reference

C Quick Syntax Reference C Quick Syntax Reference Mikael Olsson C Quick Syntax Reference Copyright 2015 by Mikael Olsson This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of

More information

Pro ASP.NET SharePoint 2010 Solutions Techniques for Building SharePoint Functionality into ASP.NET Applications

Pro ASP.NET SharePoint 2010 Solutions Techniques for Building SharePoint Functionality into ASP.NET Applications Pro ASP.NET SharePoint 2010 Solutions Techniques for Building SharePoint Functionality into ASP.NET Applications Dave Milner i Pro ASP.NET SharePoint 2010 Solutions: Techniques for Building SharePoint

More information

Essential Angular for ASP.NET Core MVC

Essential Angular for ASP.NET Core MVC Essential Angular for ASP.NET Core MVC Adam Freeman Essential Angular for ASP.NET Core MVC Adam Freeman London, UK ISBN-13 (pbk): 978-1-4842-2915-6 ISBN-13 (electronic): 978-1-4842-2916-3 DOI 10.1007/978-1-4842-2916-3

More information

The Definitive Guide to Grails 2

The Definitive Guide to Grails 2 The Definitive Guide to Grails 2 Jeff Scott Brown Graeme Rocher Apress The Definitive Guide to Grails 2 Copyright 2013 by Jeff Scott Brown and Graeme Rocher This work is subject to copyright. All rights

More information

Beginning ASP.NET MVC 4. José Rolando Guay Paz

Beginning ASP.NET MVC 4. José Rolando Guay Paz Beginning ASP.NET MVC 4 José Rolando Guay Paz Beginning ASP.NET MVC 4 Copyright 2013 by José Rolando Guay Paz This work is subject to copyright. All rights are reserved by the Publisher, whether the whole

More information

Learn PHP 7. Object-Oriented Modular Programming using HTML5, CSS3, JavaScript, XML, JSON, and MySQL. Steve Prettyman

Learn PHP 7. Object-Oriented Modular Programming using HTML5, CSS3, JavaScript, XML, JSON, and MySQL. Steve Prettyman THE EXPERT S VOICE IN WEB DEVELOPMENT Learn PHP 7 Object-Oriented Modular Programming using HTML5, CSS3, JavaScript, XML, JSON, and MySQL Steve Prettyman Learn PHP 7 Object-Oriented Modular Programming

More information

Flash Builder and Flash Catalyst The New Workflow. Steven Peeters

Flash Builder and Flash Catalyst The New Workflow. Steven Peeters Flash Builder and Flash Catalyst The New Workflow Steven Peeters Flash Builder and Flash Catalyst The New Workflow Copyright 2010 by Steven Peeters All rights reserved. No part of this work may be reproduced

More information

Web Programming with Dart. Moises Belchin Patricia Juberias

Web Programming with Dart. Moises Belchin Patricia Juberias Web Programming with Dart Moises Belchin Patricia Juberias Web Programming with Dart Copyright 2015 by Moises Belchin and Patricia Juberias This work is subject to copyright. All rights are reserved by

More information

Microsoft Computer Vision APIs Distilled

Microsoft Computer Vision APIs Distilled Microsoft Computer Vision APIs Distilled Getting Started with Cognitive Services Alessandro Del Sole Microsoft Computer Vision APIs Distilled Alessandro Del Sole Cremona, Italy ISBN-13 (pbk): 978-1-4842-3341-2

More information

MATLAB Numerical Calculations. César Pérez López

MATLAB Numerical Calculations. César Pérez López MATLAB Numerical Calculations César Pérez López MATLAB Numerical Calculations Copyright 2014 by César Pérez López This work is subject to copyright. All rights are reserved by the Publisher, whether the

More information

Expert C# 5.0 with.net 4.5 Framework

Expert C# 5.0 with.net 4.5 Framework Expert C# 5.0 with.net 4.5 Framework Mohammad Rahman Apress Expert C# 5.0: with.net 4.5 Framework Copyright 2013 by Mohammad Rahman This work is subject to copyright. All rights are reserved by the Publisher,

More information

SQL Server AlwaysOn Revealed

SQL Server AlwaysOn Revealed SQL Server AlwaysOn Revealed Second Edition Peter A. Carter SQL Server AlwaysOn Revealed, 2nd Edition Peter A. Carter Botley, United Kingdom ISBN-13 (pbk): 978-1-4842-2396-3 ISBN-13 (electronic): 978-1-4842-2397-0

More information

Migrating to Swift from Android

Migrating to Swift from Android Migrating to Swift from Android Sean Liao Migrating to Swift from Android Copyright 2014 by Sean Liao This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part

More information

Scalable Big Data Architecture

Scalable Big Data Architecture Scalable Big Data Architecture A Practitioner s Guide to Choosing Relevant Big Data Architecture Bahaaldine Azarmi Scalable Big Data Architecture Copyright 2016 by Bahaaldine Azarmi This work is subject

More information

Carlo Scarioni. Pro Spring Security

Carlo Scarioni. Pro Spring Security Carlo Scarioni Pro Spring Security Pro Spring Security Copyright 2013 by Carlo Scarioni This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material

More information

A Programmer's Guide to

A Programmer's Guide to J2EE FrontEnd Technologies: A Programmer's Guide to Servlets, JavaServer Pages, and Enterprise JavaBeans LENNART JGRELID APress Media, LLC J2EE FrontEnd Technologies: A Programmer's Guide to Servlets,

More information

Practical Amazon EC2, SQS, Kinesis, and S3

Practical Amazon EC2, SQS, Kinesis, and S3 Practical Amazon EC2, SQS, Kinesis, and S3 A Hands-On Approach to AWS Sunil Gulabani Practical Amazon EC2, SQS, Kinesis, and S3: A Hands-On Approach to AWS Sunil Gulabani Ahmedabad, Gujarat, India ISBN-13

More information

Pro Entity Framework 4.0

Pro Entity Framework 4.0 Pro Entity Framework 4.0 Scott Klein CONTENTS Pro Entity Framework 4.0 Copyright 2010 by Scott Klein All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means,

More information

Web Development, Silverlight, and

Web Development, Silverlight, and The EXPERT s VOIce in.net Beginning Web Development, Silverlight, and ASP.NET AJAX From Novice to Professional Learn how to build web applications using ASP.NET AJAX, WPF, WCF, and WF, as well as Silverlight.

More information

Enterprise JavaBeans 2.1

Enterprise JavaBeans 2.1 Enterprise JavaBeans 2.1 STEFAN DENNINGER and INGO PETERS with ROB CASTANEDA translated by David Kramer APress Media, LLC Enterprise JavaBeans 2.1 Copyright 2003 by Stefan Denninger and Ingo Peters with

More information

Web Standards Creativity: Innovations in Web Design with XHTML, CSS, and DOM Scripting

Web Standards Creativity: Innovations in Web Design with XHTML, CSS, and DOM Scripting Web Standards Creativity: Innovations in Web Design with XHTML, CSS, and DOM Scripting Cameron Adams Mark Boulton Andy Clarke Simon Collison Jeff Croft Derek Featherstone Ian Lloyd Ethan Marcotte Dan Rubin

More information

Pro MERN Stack. Full Stack Web App Development with Mongo, Express, React, and Node. Vasan Subramanian

Pro MERN Stack. Full Stack Web App Development with Mongo, Express, React, and Node. Vasan Subramanian Pro MERN Stack Full Stack Web App Development with Mongo, Express, React, and Node Vasan Subramanian Pro MERN Stack Vasan Subramanian Bangalore, Karnataka, India ISBN-13 (pbk): 978-1-4842-2652-0 ISBN-13

More information

Beginning Java and Flex Migrating Java, Spring, Hibernate, and Maven Developers to Adobe Flex

Beginning Java and Flex Migrating Java, Spring, Hibernate, and Maven Developers to Adobe Flex Beginning Java and Flex Migrating Java, Spring, Hibernate, and Maven Developers to Adobe Flex Filippo di Pisa Begi nning Jav a and F lex: Mi grating Jav a, Spri ng, Hibernate, and Maven Developers to Adobe

More information

Pro Python. Marty Alchin

Pro Python. Marty Alchin Pro Python Marty Alchin Pro Python Copyright 2010 by Marty Alchin All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including

More information

The Windows 10 Productivity Handbook

The Windows 10 Productivity Handbook The Windows 10 Productivity Handbook Discover Expert Tips, Tricks, and Hidden Features in Windows 10 Mike Halsey The Windows 10 Productivity Handbook Mike Halsey Sheffield, Yorkshire, UK ISBN-13 (pbk):

More information

Raven: Scripting Java Builds with Ruby MATTHIEU RIOU

Raven: Scripting Java Builds with Ruby MATTHIEU RIOU Raven: Scripting Java Builds with Ruby MATTHIEU RIOU Raven: Scripting Java Builds with Ruby Copyright 2007 by Matthieu Riou All rights reserved. No part of this work may be reproduced or transmitted in

More information

Beginning Robotics Programming in Java with LEGO Mindstorms

Beginning Robotics Programming in Java with LEGO Mindstorms Beginning Robotics Programming in Java with LEGO Mindstorms Wei Lu Beginning Robotics Programming in Java with LEGO Mindstorms Wei Lu Keene, New Hampshire, USA ISBN-13 (pbk): 978-1-4842-2004-7 ISBN-13

More information

Android Continuous Integration

Android Continuous Integration Android Continuous Integration Build-Deploy-Test Automation for Android Mobile Apps Pradeep Macharla Android Continuous Integration Pradeep Macharla North Carolina, USA ISBN-13 (pbk): 978-1-4842-2795-4

More information

Pro ASP.NET MVC 5. Adam Freeman

Pro ASP.NET MVC 5. Adam Freeman Pro ASP.NET MVC 5 Adam Freeman Pro ASP.NET MVC 5 Copyright 2013 by Adam Freeman This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is

More information

Pro Excel 2007 VBA. Jim DeMarco

Pro Excel 2007 VBA. Jim DeMarco Pro Excel 2007 VBA Jim DeMarco Pro Excel 2007 VBA Copyright 2008 by Jim DeMarco All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical,

More information

Agile Database Techniques Effective Strategies for the Agile Software Developer. Scott W. Ambler

Agile Database Techniques Effective Strategies for the Agile Software Developer. Scott W. Ambler Agile Database Techniques Effective Strategies for the Agile Software Developer Scott W. Ambler Agile Database Techniques Effective Strategies for the Agile Software Developer Agile Database Techniques

More information

Developing C# Apps for iphone and ipad Using MonoTouch

Developing C# Apps for iphone and ipad Using MonoTouch Developing C# Apps for iphone and ipad Using MonoTouch ios Apps Development for.net Developers Bryan Costanich i Developing C# Apps for iphone and ipad Using MonoTouch: ios Apps Development for.net Developers

More information

ASP.NET Core Recipes

ASP.NET Core Recipes ASP.NET Core Recipes A Problem-Solution Approach Second Edition John Ciliberti ASP.NET Core Recipes: A Problem-Solution Approach John Ciliberti Sparta, New Jersey, USA ISBN-13 (pbk): 978-1-4842-0428-3

More information

Silverlight and ASP.NET Revealed. Matthew MacDonald

Silverlight and ASP.NET Revealed. Matthew MacDonald Silverlight and ASP.NET Revealed Matthew MacDonald Silverlight and ASP.NET Revealed Copyright 2007 by Matthew MacDonald All rights reserved. No part of this work may be reproduced or transmitted in any

More information

The Definitive Guide to HTML Video. Silvia Pfeiffer

The Definitive Guide to HTML Video. Silvia Pfeiffer The Definitive Guide to HTML Video Silvia Pfeiffer i The Definitive Guide to HTML Video Copyright 2010 by Silvia Pfeiffer All rights reserved. No part of this work may be reproduced or transmitted in any

More information

Pro Business Applications with Silverlight 4

Pro Business Applications with Silverlight 4 Pro Business Applications with Silverlight 4 Chris Anderson Pro Business Applications with Silverlight 4 Copyright 2010 by Chris Anderson All rights reserved. No part of this work may be reproduced or

More information

Foundations of JSP Design Patterns

Foundations of JSP Design Patterns Foundations of JSP Design Patterns ANDREW PATZER EDITED BY MATTHEW MOODIE APress Media, LLC Foundatlons of JSP Design Patterns Copyright O 2004 by Andrew Patzer, Matthew Moodle Originally published by

More information

Pro Java Clustering and Scalability

Pro Java Clustering and Scalability Pro Java Clustering and Scalability Building Real-Time Apps with Spring, Cassandra, Redis, WebSocket and RabbitMQ Jorge Acetozi Pro Java Clustering and Scalability: Building Real-Time Apps with Spring,

More information

James Cryer. Pro Grunt.js

James Cryer. Pro Grunt.js James Cryer Pro Grunt.js Pro Grunt.js Copyright 2015 by James Cryer This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned,

More information

Accelerated GWT. Building Enterprise Google Web Toolkit Applications. Vipul Gupta

Accelerated GWT. Building Enterprise Google Web Toolkit Applications. Vipul Gupta Accelerated GWT Building Enterprise Google Web Toolkit Applications Vipul Gupta Accelerated GWT: Building Enterprise Google Web Toolkit Applications Copyright 2008 by Vipul Gupta All rights reserved. No

More information

Beginning Objective-C

Beginning Objective-C Beginning Objective-C James Dovey Ash Furrow Beginning Objective-C Copyright 2012 by James Dovey and Ash Furrow This work is subject to copyright. All rights are reserved by the Publisher, whether the

More information

Beginning Hibernate. Third Edition. Joseph B. Ottinger Dave Minter Jeff Linwood

Beginning Hibernate. Third Edition. Joseph B. Ottinger Dave Minter Jeff Linwood Beginning Hibernate Third Edition Joseph B. Ottinger Dave Minter Jeff Linwood Beginning Hibernate Copyright 2014 by Joseph B. Ottinger, Dave Minter, Jeff Linwood This work is subject to copyright. All

More information

Android Continuous Integration

Android Continuous Integration Android Continuous Integration Build-Deploy-Test Automation for Android Mobile Apps Pradeep Macharla Android Continuous Integration Build-Deploy-Test Automation for Android Mobile Apps Pradeep Macharla

More information

object/relational persistence What is persistence? 5

object/relational persistence What is persistence? 5 contents foreword to the revised edition xix foreword to the first edition xxi preface to the revised edition xxiii preface to the first edition xxv acknowledgments xxviii about this book xxix about the

More information

Introducing Aviary. Mike Peutz

Introducing Aviary. Mike Peutz Introducing Aviary Mike Peutz Introducing Aviary Copyright 2009 by Mike Peutz All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical,

More information

Expert Shell Scripting

Expert Shell Scripting Expert Shell Scripting Ron Peters Expert Shell Scripting Copyright 2009 by Ron Peters All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic

More information

Beginning JSF 2 APIs and JBoss Seam. Kent Ka Iok Tong

Beginning JSF 2 APIs and JBoss Seam. Kent Ka Iok Tong Beginning JSF 2 APIs and JBoss Seam Kent Ka Iok Tong Beginning JSF 2 APIs and JBoss Seam Copyright 2009 by Kent Ka Iok Tong All rights reserved. No part of this work may be reproduced or transmitted in

More information

Pro SharePoint 2013 Administration Rob Garrett

Pro SharePoint 2013 Administration Rob Garrett Pro SharePoint 2013 Administration Rob Garrett Apress Pro SharePoint 2013 Administration Copyright 2013 by Rob Garrett This work is subject to copyright. All rights are reserved by the Publisher, whether

More information

Pro Python System Administration

Pro Python System Administration Pro Python System Administration Rytis Sileika Pro Python System Administration Copyright 2010 by Rytis Sileika All rights reserved. No part of this work may be reproduced or transmitted in any form or

More information

Pro Perl Parsing. Christopher M. Frenz

Pro Perl Parsing. Christopher M. Frenz Pro Perl Parsing Christopher M. Frenz Pro Perl Parsing Copyright 2005 by Christopher M. Frenz Lead Editors: Jason Gilmore and Matthew Moodie Technical Reviewer: Teodor Zlatanov Editorial Board: Steve Anglin,

More information

Deepak Vohra. Pro Docker

Deepak Vohra. Pro Docker Deepak Vohra Pro Docker Pro Docker Copyright 2016 by Deepak Vohra This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically

More information

Struts: Struts 1.x. Introduction. Enterprise Application

Struts: Struts 1.x. Introduction. Enterprise Application Struts: Introduction Enterprise Application System logical layers a) Presentation layer b) Business processing layer c) Data Storage and access layer System Architecture a) 1-tier Architecture b) 2-tier

More information

Pro MongoDB Development

Pro MongoDB Development Pro MongoDB Development Deepak Vohra Pro MongoDB Development Copyright 2015 by Deepak Vohra This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the

More information

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Web Application Development Using JEE, Enterprise JavaBeans and JPA Web Application Development Using JEE, Enterprise Java and JPA Duration: 5 days Price: $2795 *California residents and government employees call for pricing. Discounts: We offer multiple discount options.

More information

Digital Illustration Fundamentals

Digital Illustration Fundamentals Wallace Jackson Digital Illustration Fundamentals Vector, Raster, WaveForm, NewMedia with DICF, DAEF and ASNMF 1st ed. 2015 Wallace Jackson Lompoc, California, USA ISBN 978-1-4842-1696-5 e-isbn 978-1-4842-1697-2

More information

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Web Application Development Using JEE, Enterprise JavaBeans and JPA Web Application Development Using JEE, Enterprise Java and JPA Duration: 35 hours Price: $750 Delivery Option: Attend training via an on-demand, self-paced platform paired with personal instructor facilitation.

More information

Pro Multithreading and Memory Management for ios and OS X

Pro Multithreading and Memory Management for ios and OS X Pro Multithreading and Memory Management for ios and OS X Kazuki Sakamoto Tomohiko Furumoto i Pro Multithreading and Memory Management for ios and OS X Copyright 2012 by Kazuki Sakamoto This work is subject

More information

Visual Studio Condensed. Patrick Desjardins

Visual Studio Condensed. Patrick Desjardins Visual Studio Condensed Patrick Desjardins Visual Studio Condensed Copyright 2014 by Patrick Desjardins This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or

More information

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module Java Platform, Enterprise Edition 5 (Java EE 5) Core Java EE Java EE 5 Platform Overview Java EE Platform Distributed Multi tiered Applications Java EE Web & Business Components Java EE Containers services

More information

C++ Recipes. A Problem-Solution Approach. Bruce Sutherland

C++ Recipes. A Problem-Solution Approach. Bruce Sutherland C++ Recipes A Problem-Solution Approach Bruce Sutherland C++ Recipes: A Problem-Solution Approach Copyright 2015 by Bruce Sutherland This work is subject to copyright. All rights are reserved by the Publisher,

More information

foreword to the first edition preface xxi acknowledgments xxiii about this book xxv about the cover illustration

foreword to the first edition preface xxi acknowledgments xxiii about this book xxv about the cover illustration contents foreword to the first edition preface xxi acknowledgments xxiii about this book xxv about the cover illustration xix xxxii PART 1 GETTING STARTED WITH ORM...1 1 2 Understanding object/relational

More information

JavaScript Essentials for SAP ABAP Developers

JavaScript Essentials for SAP ABAP Developers JavaScript Essentials for SAP ABAP Developers A Guide to Mobile and Desktop Application Development Rehan Zaidi JavaScript Essentials for SAP ABAP Developers: A Guide to Mobile and Desktop Application

More information

Android Fragments. Dave MacLean Satya Komatineni

Android Fragments. Dave MacLean Satya Komatineni Android Fragments Dave MacLean Satya Komatineni Android Fragments Copyright 2014 by Dave MacLean, Satya Komatineni This work is subject to copyright. All rights are reserved by the Publisher, whether the

More information

POJOs in Action DEVELOPING ENTERPRISE APPLICATIONS WITH LIGHTWEIGHT FRAMEWORKS CHRIS RICHARDSON MANNING. Greenwich (74 w. long.)

POJOs in Action DEVELOPING ENTERPRISE APPLICATIONS WITH LIGHTWEIGHT FRAMEWORKS CHRIS RICHARDSON MANNING. Greenwich (74 w. long.) POJOs in Action DEVELOPING ENTERPRISE APPLICATIONS WITH LIGHTWEIGHT FRAMEWORKS CHRIS RICHARDSON MANNING Greenwich (74 w. long.) contents PART 1 1 preface xix acknowledgments xxi about this book xxiii about

More information

Beginning CSS Preprocessors

Beginning CSS Preprocessors Beginning CSS Preprocessors With Sass, Compass, and Less Anirudh Prabhu Beginning CSS Preprocessors: With SASS, Compass.js, and Less.js Copyright 2015 by Anirudh Prabhu This work is subject to copyright.

More information

Fundamentals of Operating Systems. Fifth Edition

Fundamentals of Operating Systems. Fifth Edition Fundamentals of Operating Systems Fifth Edition Fundamentals of Operating Systems A.M. Lister University of Queensland R. D. Eager University of Kent at Canterbury Fifth Edition Springer Science+Business

More information

Microsoft Mapping. Geospatial Development in Windows 10 with Bing Maps and C# Second Edition. Carmen Au Ray Rischpater

Microsoft Mapping. Geospatial Development in Windows 10 with Bing Maps and C# Second Edition. Carmen Au Ray Rischpater Microsoft Mapping Geospatial Development in Windows 10 with Bing Maps and C# Second Edition Carmen Au Ray Rischpater Microsoft Mapping: Geospatial Development in Windows 10 with Bing Maps and C# Copyright

More information

Pro Angular 6. Third Edition. Adam Freeman

Pro Angular 6. Third Edition. Adam Freeman Pro Angular 6 Third Edition Adam Freeman Pro Angular 6 Adam Freeman London, UK ISBN-13 (pbk): 978-1-4842-3648-2 ISBN-13 (electronic): 978-1-4842-3649-9 https://doi.org/10.1007/978-1-4842-3649-9 Library

More information

Beginning Functional JavaScript

Beginning Functional JavaScript Beginning Functional JavaScript Functional Programming with JavaScript Using EcmaScript 6 Anto Aravinth Beginning Functional JavaScript Anto Aravinth Chennai, Tamil Nadu, India ISBN-13 (pbk): 978-1-4842-2655-1

More information

iphone Design Award-Winning Projects Chris Dannen

iphone Design Award-Winning Projects Chris Dannen iphone Design Award-Winning Projects Chris Dannen i iphone Design Award-Winning Projects Copyright 2009 by Chris Dannen All rights reserved. No part of this work may be reproduced or transmitted in any

More information

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject

More information

Pivotal Certified Professional Spring Developer Exam

Pivotal Certified Professional Spring Developer Exam Pivotal Certified Professional Spring Developer Exam A Study Guide Iuliana Cosmina Pivotal Certified Spring Web Application Developer Exam Iuliana Cosmina Sibiu, Romania ISBN-13 (pbk): 978-1-4842-0812-0

More information

Pro Android C++ with the NDK

Pro Android C++ with the NDK Pro Android C++ with the NDK Onur Cinar Apress Pro Android C++ with the NDK Copyright 2012 by Onur Cinar This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or

More information

Web Application Development Using Spring, Hibernate and JPA

Web Application Development Using Spring, Hibernate and JPA Web Application Development Using Spring, Hibernate and JPA Duration: 5 Days Price: 1,995 + VAT Course Description: This course provides a comprehensive introduction to JPA (the Java Persistence API),

More information

Web Application Development Using Spring, Hibernate and JPA

Web Application Development Using Spring, Hibernate and JPA Web Application Development Using Spring, Hibernate and JPA Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject to GST/HST Delivery Options:

More information