Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Spring + MongoDB: Two Leaves of the Same Tree

DZone's Guide to

Spring + MongoDB: Two Leaves of the Same Tree

It's important to integrate with a wide variety of languages and ecosystems, and MongoDB and Spring go together like two leaves of the same NoSQL tree.

· Database Zone
Free Resource

Learn how our document data model can map directly to how you program your app, and native database features like secondary indexes, geospatial and text search give you full access to your data. Brought to you in partnership with MongoDB.

Norberto Leite spoke at Spring.io last week. In this blog post, he will discuss his talk: Spring + MongoDB: Two Leaves of the Same Tree.

Spring Framework and MongoDB

At MongoDB, we believe that integration is key. It is important to integrate with a wide variety of languages and ecosystems, and it is important to expose all the features and functionality that make MongoDB great. We want you to be able to build all kinds of applications on all sorts of different environments using the tools that are best suited for your purpose. As part of this effort of enabling and boosting developer productivity, we support a large variety of programming languages through our official and community drivers and enabling existing frameworks and applications stacks to integrate correctly with MongoDB.

Spring Framework, and in particular, Spring Data, is a very good example of how one can consolidate the development experience using familiar or well understood tools to build their applications

Spring Projects and MongoDB

Spring is one of the most prominent frameworks used across Java enterprise projects. Many applications across a variety of businesses, environments, and stacks rely on Spring projects for many of the integrations and general implementation of functionality. Some Spring projects are widely used like Spring Batch which offers a generic approach to batch processing, Spring Boot where we can automatize a large set of application processes so developers can focus on the business logic and differentiated algorithms of their apps and services. Spring Data offers applications a very powerful ODM to support not only application level abstraction of the persistence layer but also an integrated approach to handle all the data manipulation and common impedance mismatches that application logic provokes.

This presentation discusses a set of features that make this integration "gel" well:
Spring Data abstraction layer
The way that Spring Data covers Object Mapping
Optimizations that Spring Data enables to make the most out of MongoDB
Batch processing and indexing will also be covered, with particular emphasis around the method overriding and query optimization.

Use your tools wisely

There are significant benefits of using ODMs, especially for large complex projects:


  • Assures integration with existing components

  • Abstraction layers allow architects to delay decisions and avoid pre-optimizations

  • Common patterns that are recurrent across different data stores
  • But also bear in mind that many of the existing ORMs/ODMs do not have a "Document Oriented Database" first policy but have been evolving to adjust to today’s database industry revolution. Many of the implementations are based on an architecture that is oriented to relational technology, and they make significant tradeoffs to accommodate several different systems.

    Spring Data is one of the most popular and best-designed ORM technologies out there. MongoDB is committed to making sure the integration between these technologies is great.

    View Norberto's presentation here.

Discover when your data grows or your application performance demands increase, MongoDB Atlas allows you to scale out your deployment with an automated sharding process that ensures zero application downtime. Brought to you in partnership with MongoDB.

Topics:
nosql ,theory ,spring ,mongodb ,database

Published at DZone with permission of Dana Groce, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}