Spring Framework Part 4 - Spring Data with JPA, Hadoop, MongoDB, and More

Course:  SPRING4
Duration:  5 Days
Level:  III
Course Summary

Big Data and NoSQL are very popular RDBMS alternatives for working with extremely large amounts of data. Spring Data and Spring HD are projects that offer Java developers a way to reduce time in application development in these areas. This course will teach the students how to leverage those project Frameworks. It will also include the five most popular database types. Spring Batch and Spring Integration will be used with Hadoop.

« Hide The Details
Topics Covered In This Course

The Spring Data Project

  • NoSQL Data Access for Spring Developers
  • General Approaches
  • The Business under study

Repositories: Convenient Data Access Layers

  • Defining Query Methods
  • Query Lookup Strategies
  • Query Building
  • Pagination and Sorting
  • Defining Repositories
  • Tuning Repository Interfaces
  • Manually Implementing Repository Methods

Type-Safe Querying Using Querydsl

  • The Big Picture
  • Generating the Query Metamodel
  • Build System Integration
  • Supported Annotation Processors
  • Querying Stores Using Querydsl
  • Integration with Spring Data Repositories
  • Predicate usage
  • Manually Implementing Repositories

JPA Repositories

  • The Sample Project
  • The Traditional Approach
  • Bootstrapping the Code
  • Using Spring Data Repositories
  • Transactions
  • Repository Querydsl Integration

Type-Safe JDBC Programming with Querydsl SQL

  • The HSQLDB Database
  • The SQL Module of Querydsl
  • Build System Integration
  • The QueryDslJdbcTemplate
  • Executing Queries
  • Querying for a Single Object
  • The OneToManyResultSetExtractor Abstract Class
  • The CustomerListExtractor Implementation
  • The Implementations for the RowMappers
  • Querying for a List of Objects
  • Insert, Update, and Delete Operations
  • Inserting with the SQLInsertClause
  • Updating with the SQLUpdateClause
  • Deleting Rows with the SQLDeleteClause

MongoDB: A Document Store

  • Overview
  • Setting Up MongoDB
  • Using the MongoDB Shell
  • The MongoDB Java Driver
  • Setting Up the Infrastructure Using the Spring Namespace
  • The Mapping Subsystem
  • The Domain Model
  • Setting Up the Mapping Infrastructure
  • Indexing
  • Customizing Conversion
  • MongoTemplate
  • Mongo Repositories
  • Infrastructure Setup
  • Repositories in Detail
  • Mongo Querydsl Integration

Neo4j: A Graph Database

  • Spring Data Neo4j Overview
  • Modeling the Domain as a Graph
  • Persisting Domain Objects with Spring Data Neo4j
  • Neo4jTemplate
  • Combining Graph and Repository Power
  • Basic Graph Repository Operations
  • Derived and Annotated Finder Methods
  • Advanced Graph Use Cases
  • Multiple Roles for a Single Node
  • Product Categories and Tags as Examples for In-Graph Indexes
  • Leverage Similar Interests (Collaborative Filtering)
  • Transactions, Entity Life Cycle, and Fetch Strategies

Redis: A Key/Value Store

  • Overview
  • Setup
  • Using the Redis Shell
  • Connecting to Redis
  • Object Conversion
  • Object Mapping
  • Atomic Counters
  • Pub/Sub Functionality
  • Listening and Responding to Messages

REST Repository Exporter

  • Interacting with the REST Exporter
  • Accessing Products
  • Accessing Customers
  • Accessing Orders

Spring for Apache Hadoop

  • Overview
  • Challenges Developing with Hadoop
  • Hello Universe
  • Hello Universe Revealed
  • Hello Universe Using Spring for Apache Hadoop
  • Scripting HDFS on the JVM
  • Combining HDFS Scripting and Job Submission
  • Job Scheduling
  • Scheduling MapReduce Jobs with a TaskScheduler
  • Scheduling MapReduce Jobs with Quartz

Analyzing Data with Hadoop

  • Using Hive
  • Hello Universe
  • Running a Hive Server
  • Using the Hive Thrift Client
  • Using the Hive JDBC Client
  • Apache Logfile Analysis Using Hive
  • Using Pig
  • Running a PigServer
  • Controlling Runtime Script Execution
  • Calling Pig Scripts Inside Spring Integration Data Pipelines
  • Apache Logfile Analysis Using Pig
  • Using HBase
  • Using the HBase Java Client
  • Creating Big Data Pipelines with Spring Batch and Spring Integration

Collecting and Loading Data into HDFS

  • An Introduction to Spring Integration
  • Copying Logfiles
  • Event Streams
  • Event Forwarding
  • Management
  • An Introduction to Spring Batch
  • Processing and Loading Data from a Database
  • Hadoop Workflows
  • Spring Batch Support for Hadoop
  • Wordcount as a Spring Batch Application
  • Hive and Pig Steps
  • Exporting Data from HDFS
  • From HDFS to JDBC
  • From HDFS to MongoDB

GemFire: A Distributed Data Grid

  • Overview
  • Caches and Regions
  • How to Get GemFire
  • Configuring GemFire with the Spring XML Namespace
  • Cache Configuration
  • Region Configuration
  • Cache Client Configuration
  • Cache Server Configuration
  • WAN Configuration
  • Disk Store Configuration
  • Data Access with GemfireTemplate
  • Repository Usage
  • POJO Mapping
  • Creating a Repository
What You Can Expect

At the end of this course, students will be able to:

  • Understand the Spring Data Project Framework
  • Understand Repositories to access Data Layers
  • Understand Type-Safe Querying Using Querydsl
  • Build Relational JPA Repositories
  • Create Relational Type-Safe JDBC syntax with Querydsl SQL
  • Develop code for MongoDB, a Document Store
  • Develop code for Neo4j, a Graph Database
  • Develop code for Redis, a Key/Value Store
  • Use REST Repository Exporter
  • Develop code for Apache Hadoop
  • Analyze Data with Hadoop
  • Create Big Data Pipelines with Spring Batch and Spring Integration
  • Develop code for GemFire, a Distributed Data Grid
  • Understand Spring Integration and where it can be used.
Who Should Take This Course

This course is designed for Developers who have attended the Spring Framework Part 1 class or have equivalent experience in developing or maintaining Spring Framework applications.

Recommended Prerequisites

Spring programming experience, a basic knowledge of configuration, familiarity with the Spring Framework dependency injection, and JDBC programming

Training Style

Instructor led with 50% lecture and 50% lab.

« Hide The Details
Related Courses
Code Course Title Duration Level
Spring Framework Part 1 - Fundamentals, Injection, AOP, Beginning MVC
5 Days
Spring Framework 3.x New Features
3 Days
Spring Framework Part 2 - More MVC, Webflow, Web Services, Security, ROO
5 Days
Spring 3 Security
3 Days
Spring Framework Part 3 - Batch, Integration, Data with JPA, Testing
5 Days

Every student attending a Verhoef Training class will receive a certificate good for $100 toward their next public class taken within a year.

You can also buy "Verhoef Vouchers" to get a discounted rate for a single student in any of our public or web-based classes. Contact your account manager or our sales office for details.

Schedule For This Course
There are currently no public sessions scheduled for this course. We can schedule a private class for your organization just a couple of weeks from now. Or we can let you know the next time we do schedule a public session.
Notify me the next time this course is confirmed!
Can't find the course you want?
Call us at 800.533.3893, or
email us at [email protected]