Alternatives to Spring Data logo

Alternatives to Spring Data

Hibernate, Spring Boot, Spring Batch, MyBatis, and jOOQ are the most popular alternatives and competitors to Spring Data.
602
408
+ 1
0

What is Spring Data and what are its top alternatives?

It makes it easy to use data access technologies, relational and non-relational databases, map-reduce frameworks, and cloud-based data services. This is an umbrella project which contains many subprojects that are specific to a given database.
Spring Data is a tool in the Database Tools category of a tech stack.
Spring Data is an open source tool with 93 GitHub stars and 82 GitHub forks. Here’s a link to Spring Data's open source repository on GitHub

Top Alternatives to Spring Data

  • Hibernate
    Hibernate

    Hibernate is a suite of open source projects around domain models. The flagship project is Hibernate ORM, the Object Relational Mapper. ...

  • Spring Boot
    Spring Boot

    Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration. ...

  • Spring Batch
    Spring Batch

    It is designed to enable the development of robust batch applications vital for the daily operations of enterprise systems. It also provides reusable functions that are essential in processing large volumes of records, including logging/tracing, transaction management, job processing statistics, job restart, skip, and resource management. ...

  • MyBatis
    MyBatis

    It is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. It eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. It can use simple XML or Annotations for configuration and map primitives, Map interfaces and Java POJOs (Plain Old Java Objects) to database records. ...

  • jOOQ
    jOOQ

    It implements the active record pattern. Its purpose is to be both relational and object oriented by providing a domain-specific language to construct queries from classes generated from a database schema. ...

  • MySQL
    MySQL

    The MySQL software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software. ...

  • PostgreSQL
    PostgreSQL

    PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions. ...

  • MongoDB
    MongoDB

    MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding. ...

Spring Data alternatives & related posts

Hibernate logo

Hibernate

1.5K
34
Idiomatic persistence for Java and relational databases.
1.5K
34
PROS OF HIBERNATE
  • 22
    Easy ORM
  • 8
    Easy transaction definition
  • 3
    Is integrated with spring jpa
  • 1
    Open Source
CONS OF HIBERNATE
  • 3
    Can't control proxy associations when entity graph used

related Hibernate posts

Ganesa Vijayakumar
Full Stack Coder | Technical Architect · | 19 upvotes · 5.6M views

I'm planning to create a web application and also a mobile application to provide a very good shopping experience to the end customers. Shortly, my application will be aggregate the product details from difference sources and giving a clear picture to the user that when and where to buy that product with best in Quality and cost.

I have planned to develop this in many milestones for adding N number of features and I have picked my first part to complete the core part (aggregate the product details from different sources).

As per my work experience and knowledge, I have chosen the followings stacks to this mission.

UI: I would like to develop this application using React, React Router and React Native since I'm a little bit familiar on this and also most importantly these will help on developing both web and mobile apps. In addition, I'm gonna use the stacks JavaScript, jQuery, jQuery UI, jQuery Mobile, Bootstrap wherever required.

Service: I have planned to use Java as the main business layer language as I have 7+ years of experience on this I believe I can do better work using Java than other languages. In addition, I'm thinking to use the stacks Node.js.

Database and ORM: I'm gonna pick MySQL as DB and Hibernate as ORM since I have a piece of good knowledge and also work experience on this combination.

Search Engine: I need to deal with a large amount of product data and it's in-detailed info to provide enough details to end user at the same time I need to focus on the performance area too. so I have decided to use Solr as a search engine for product search and suggestions. In addition, I'm thinking to replace Solr by Elasticsearch once explored/reviewed enough about Elasticsearch.

Host: As of now, my plan to complete the application with decent features first and deploy it in a free hosting environment like Docker and Heroku and then once it is stable then I have planned to use the AWS products Amazon S3, EC2, Amazon RDS and Amazon Route 53. I'm not sure about Microsoft Azure that what is the specialty in it than Heroku and Amazon EC2 Container Service. Anyhow, I will do explore these once again and pick the best suite one for my requirement once I reached this level.

Build and Repositories: I have decided to choose Apache Maven and Git as these are my favorites and also so popular on respectively build and repositories.

Additional Utilities :) - I would like to choose Codacy for code review as their Startup plan will be very helpful to this application. I'm already experienced with Google CheckStyle and SonarQube even I'm looking something on Codacy.

Happy Coding! Suggestions are welcome! :)

Thanks, Ganesa

See more
NIDHISH PUTHIYADATH
Lead Software Engineer at EDIFECS · | 1 upvote · 313.9K views

Material Design for Angular Angular 2 Node.js TypeScript Spring-Boot RxJS Microsoft SQL Server Hibernate Spring MVC

We built our customer facing portal application using Angular frontend backed by Spring boot.

See more
Spring Boot logo

Spring Boot

26.2K
1K
Create Spring-powered, production-grade applications and services with absolute minimum fuss
26.2K
1K
PROS OF SPRING BOOT
  • 149
    Powerful and handy
  • 134
    Easy setup
  • 128
    Java
  • 90
    Spring
  • 85
    Fast
  • 46
    Extensible
  • 37
    Lots of "off the shelf" functionalities
  • 32
    Cloud Solid
  • 26
    Caches well
  • 24
    Productive
  • 24
    Many receipes around for obscure features
  • 23
    Modular
  • 23
    Integrations with most other Java frameworks
  • 22
    Spring ecosystem is great
  • 21
    Auto-configuration
  • 21
    Fast Performance With Microservices
  • 18
    Community
  • 17
    Easy setup, Community Support, Solid for ERP apps
  • 15
    One-stop shop
  • 14
    Easy to parallelize
  • 14
    Cross-platform
  • 13
    Easy setup, good for build erp systems, well documented
  • 13
    Powerful 3rd party libraries and frameworks
  • 12
    Easy setup, Git Integration
  • 5
    It's so easier to start a project on spring
  • 4
    Kotlin
  • 1
    Microservice and Reactive Programming
  • 1
    The ability to integrate with the open source ecosystem
CONS OF SPRING BOOT
  • 23
    Heavy weight
  • 18
    Annotation ceremony
  • 13
    Java
  • 11
    Many config files needed
  • 5
    Reactive
  • 4
    Excellent tools for cloud hosting, since 5.x
  • 1
    Java 😒😒

related Spring Boot posts

Praveen Mooli
Engineering Manager at Taylor and Francis · | 19 upvotes · 4M views

We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas

To build #Webapps we decided to use Angular 2 with RxJS

#Devops - GitHub , Travis CI , Terraform , Docker , Serverless

See more

Is learning Spring and Spring Boot for web apps back-end development is still relevant in 2021? Feel free to share your views with comparison to Django/Node.js/ ExpressJS or other frameworks.

Please share some good beginner resources to start learning about spring/spring boot framework to build the web apps.

See more
Spring Batch logo

Spring Batch

185
0
A lightweight, comprehensive batch framework
185
0
PROS OF SPRING BATCH
    Be the first to leave a pro
    CONS OF SPRING BATCH
      Be the first to leave a con

      related Spring Batch posts

      MyBatis logo

      MyBatis

      225
      17
      SQL Mapper Framework for Java
      225
      17
      PROS OF MYBATIS
      • 6
        Easy to use
      • 3
        Flexible
      • 3
        Extensions
      • 3
        Integrated with Spring
      • 2
        Data-first support
      CONS OF MYBATIS
        Be the first to leave a con

        related MyBatis posts

        jOOQ logo

        jOOQ

        110
        1
        A light database-mapping software library
        110
        1
        PROS OF JOOQ
        • 1
          Easy dsl
        CONS OF JOOQ
          Be the first to leave a con

          related jOOQ posts

          MySQL logo

          MySQL

          126.2K
          3.8K
          The world's most popular open source database
          126.2K
          3.8K
          PROS OF MYSQL
          • 800
            Sql
          • 679
            Free
          • 562
            Easy
          • 528
            Widely used
          • 490
            Open source
          • 180
            High availability
          • 160
            Cross-platform support
          • 104
            Great community
          • 79
            Secure
          • 75
            Full-text indexing and searching
          • 26
            Fast, open, available
          • 16
            Reliable
          • 16
            SSL support
          • 15
            Robust
          • 9
            Enterprise Version
          • 7
            Easy to set up on all platforms
          • 3
            NoSQL access to JSON data type
          • 1
            Relational database
          • 1
            Easy, light, scalable
          • 1
            Sequel Pro (best SQL GUI)
          • 1
            Replica Support
          CONS OF MYSQL
          • 16
            Owned by a company with their own agenda
          • 3
            Can't roll back schema changes

          related MySQL posts

          Nick Rockwell
          SVP, Engineering at Fastly · | 46 upvotes · 4.3M views

          When I joined NYT there was already broad dissatisfaction with the LAMP (Linux Apache HTTP Server MySQL PHP) Stack and the front end framework, in particular. So, I wasn't passing judgment on it. I mean, LAMP's fine, you can do good work in LAMP. It's a little dated at this point, but it's not ... I didn't want to rip it out for its own sake, but everyone else was like, "We don't like this, it's really inflexible." And I remember from being outside the company when that was called MIT FIVE when it had launched. And been observing it from the outside, and I was like, you guys took so long to do that and you did it so carefully, and yet you're not happy with your decisions. Why is that? That was more the impetus. If we're going to do this again, how are we going to do it in a way that we're gonna get a better result?

          So we're moving quickly away from LAMP, I would say. So, right now, the new front end is React based and using Apollo. And we've been in a long, protracted, gradual rollout of the core experiences.

          React is now talking to GraphQL as a primary API. There's a Node.js back end, to the front end, which is mainly for server-side rendering, as well.

          Behind there, the main repository for the GraphQL server is a big table repository, that we call Bodega because it's a convenience store. And that reads off of a Kafka pipeline.

          See more
          Tim Abbott

          We've been using PostgreSQL since the very early days of Zulip, but we actually didn't use it from the beginning. Zulip started out as a MySQL project back in 2012, because we'd heard it was a good choice for a startup with a wide community. However, we found that even though we were using the Django ORM for most of our database access, we spent a lot of time fighting with MySQL. Issues ranged from bad collation defaults, to bad query plans which required a lot of manual query tweaks.

          We ended up getting so frustrated that we tried out PostgresQL, and the results were fantastic. We didn't have to do any real customization (just some tuning settings for how big a server we had), and all of our most important queries were faster out of the box. As a result, we were able to delete a bunch of custom queries escaping the ORM that we'd written to make the MySQL query planner happy (because postgres just did the right thing automatically).

          And then after that, we've just gotten a ton of value out of postgres. We use its excellent built-in full-text search, which has helped us avoid needing to bring in a tool like Elasticsearch, and we've really enjoyed features like its partial indexes, which saved us a lot of work adding unnecessary extra tables to get good performance for things like our "unread messages" and "starred messages" indexes.

          I can't recommend it highly enough.

          See more
          PostgreSQL logo

          PostgreSQL

          98.9K
          3.5K
          A powerful, open source object-relational database system
          98.9K
          3.5K
          PROS OF POSTGRESQL
          • 764
            Relational database
          • 510
            High availability
          • 439
            Enterprise class database
          • 383
            Sql
          • 304
            Sql + nosql
          • 173
            Great community
          • 147
            Easy to setup
          • 131
            Heroku
          • 130
            Secure by default
          • 113
            Postgis
          • 50
            Supports Key-Value
          • 48
            Great JSON support
          • 34
            Cross platform
          • 33
            Extensible
          • 28
            Replication
          • 26
            Triggers
          • 23
            Multiversion concurrency control
          • 23
            Rollback
          • 21
            Open source
          • 18
            Heroku Add-on
          • 17
            Stable, Simple and Good Performance
          • 15
            Powerful
          • 13
            Lets be serious, what other SQL DB would you go for?
          • 11
            Good documentation
          • 9
            Scalable
          • 8
            Free
          • 8
            Reliable
          • 8
            Intelligent optimizer
          • 7
            Transactional DDL
          • 7
            Modern
          • 6
            One stop solution for all things sql no matter the os
          • 5
            Relational database with MVCC
          • 5
            Faster Development
          • 4
            Full-Text Search
          • 4
            Developer friendly
          • 3
            Excellent source code
          • 3
            Free version
          • 3
            Great DB for Transactional system or Application
          • 3
            Relational datanbase
          • 3
            search
          • 3
            Open-source
          • 2
            Text
          • 2
            Full-text
          • 1
            Can handle up to petabytes worth of size
          • 1
            Composability
          • 1
            Multiple procedural languages supported
          • 0
            Native
          CONS OF POSTGRESQL
          • 10
            Table/index bloatings

          related PostgreSQL posts

          Simon Reymann
          Senior Fullstack Developer at QUANTUSflow Software GmbH · | 30 upvotes · 11.9M views

          Our whole DevOps stack consists of the following tools:

          • GitHub (incl. GitHub Pages/Markdown for Documentation, GettingStarted and HowTo's) for collaborative review and code management tool
          • Respectively Git as revision control system
          • SourceTree as Git GUI
          • Visual Studio Code as IDE
          • CircleCI for continuous integration (automatize development process)
          • Prettier / TSLint / ESLint as code linter
          • SonarQube as quality gate
          • Docker as container management (incl. Docker Compose for multi-container application management)
          • VirtualBox for operating system simulation tests
          • Kubernetes as cluster management for docker containers
          • Heroku for deploying in test environments
          • nginx as web server (preferably used as facade server in production environment)
          • SSLMate (using OpenSSL) for certificate management
          • Amazon EC2 (incl. Amazon S3) for deploying in stage (production-like) and production environments
          • PostgreSQL as preferred database system
          • Redis as preferred in-memory database/store (great for caching)

          The main reason we have chosen Kubernetes over Docker Swarm is related to the following artifacts:

          • Key features: Easy and flexible installation, Clear dashboard, Great scaling operations, Monitoring is an integral part, Great load balancing concepts, Monitors the condition and ensures compensation in the event of failure.
          • Applications: An application can be deployed using a combination of pods, deployments, and services (or micro-services).
          • Functionality: Kubernetes as a complex installation and setup process, but it not as limited as Docker Swarm.
          • Monitoring: It supports multiple versions of logging and monitoring when the services are deployed within the cluster (Elasticsearch/Kibana (ELK), Heapster/Grafana, Sysdig cloud integration).
          • Scalability: All-in-one framework for distributed systems.
          • Other Benefits: Kubernetes is backed by the Cloud Native Computing Foundation (CNCF), huge community among container orchestration tools, it is an open source and modular tool that works with any OS.
          See more
          Jeyabalaji Subramanian

          Recently we were looking at a few robust and cost-effective ways of replicating the data that resides in our production MongoDB to a PostgreSQL database for data warehousing and business intelligence.

          We set ourselves the following criteria for the optimal tool that would do this job: - The data replication must be near real-time, yet it should NOT impact the production database - The data replication must be horizontally scalable (based on the load), asynchronous & crash-resilient

          Based on the above criteria, we selected the following tools to perform the end to end data replication:

          We chose MongoDB Stitch for picking up the changes in the source database. It is the serverless platform from MongoDB. One of the services offered by MongoDB Stitch is Stitch Triggers. Using stitch triggers, you can execute a serverless function (in Node.js) in real time in response to changes in the database. When there are a lot of database changes, Stitch automatically "feeds forward" these changes through an asynchronous queue.

          We chose Amazon SQS as the pipe / message backbone for communicating the changes from MongoDB to our own replication service. Interestingly enough, MongoDB stitch offers integration with AWS services.

          In the Node.js function, we wrote minimal functionality to communicate the database changes (insert / update / delete / replace) to Amazon SQS.

          Next we wrote a minimal micro-service in Python to listen to the message events on SQS, pickup the data payload & mirror the DB changes on to the target Data warehouse. We implemented source data to target data translation by modelling target table structures through SQLAlchemy . We deployed this micro-service as AWS Lambda with Zappa. With Zappa, deploying your services as event-driven & horizontally scalable Lambda service is dumb-easy.

          In the end, we got to implement a highly scalable near realtime Change Data Replication service that "works" and deployed to production in a matter of few days!

          See more
          MongoDB logo

          MongoDB

          94K
          4.1K
          The database for giant ideas
          94K
          4.1K
          PROS OF MONGODB
          • 828
            Document-oriented storage
          • 593
            No sql
          • 553
            Ease of use
          • 464
            Fast
          • 410
            High performance
          • 255
            Free
          • 218
            Open source
          • 180
            Flexible
          • 145
            Replication & high availability
          • 112
            Easy to maintain
          • 42
            Querying
          • 39
            Easy scalability
          • 38
            Auto-sharding
          • 37
            High availability
          • 31
            Map/reduce
          • 27
            Document database
          • 25
            Easy setup
          • 25
            Full index support
          • 16
            Reliable
          • 15
            Fast in-place updates
          • 14
            Agile programming, flexible, fast
          • 12
            No database migrations
          • 8
            Easy integration with Node.Js
          • 8
            Enterprise
          • 6
            Enterprise Support
          • 5
            Great NoSQL DB
          • 4
            Support for many languages through different drivers
          • 3
            Schemaless
          • 3
            Aggregation Framework
          • 3
            Drivers support is good
          • 2
            Fast
          • 2
            Managed service
          • 2
            Easy to Scale
          • 2
            Awesome
          • 2
            Consistent
          • 1
            Good GUI
          • 1
            Acid Compliant
          CONS OF MONGODB
          • 6
            Very slowly for connected models that require joins
          • 3
            Not acid compliant
          • 2
            Proprietary query language

          related MongoDB posts

          Jeyabalaji Subramanian

          Recently we were looking at a few robust and cost-effective ways of replicating the data that resides in our production MongoDB to a PostgreSQL database for data warehousing and business intelligence.

          We set ourselves the following criteria for the optimal tool that would do this job: - The data replication must be near real-time, yet it should NOT impact the production database - The data replication must be horizontally scalable (based on the load), asynchronous & crash-resilient

          Based on the above criteria, we selected the following tools to perform the end to end data replication:

          We chose MongoDB Stitch for picking up the changes in the source database. It is the serverless platform from MongoDB. One of the services offered by MongoDB Stitch is Stitch Triggers. Using stitch triggers, you can execute a serverless function (in Node.js) in real time in response to changes in the database. When there are a lot of database changes, Stitch automatically "feeds forward" these changes through an asynchronous queue.

          We chose Amazon SQS as the pipe / message backbone for communicating the changes from MongoDB to our own replication service. Interestingly enough, MongoDB stitch offers integration with AWS services.

          In the Node.js function, we wrote minimal functionality to communicate the database changes (insert / update / delete / replace) to Amazon SQS.

          Next we wrote a minimal micro-service in Python to listen to the message events on SQS, pickup the data payload & mirror the DB changes on to the target Data warehouse. We implemented source data to target data translation by modelling target table structures through SQLAlchemy . We deployed this micro-service as AWS Lambda with Zappa. With Zappa, deploying your services as event-driven & horizontally scalable Lambda service is dumb-easy.

          In the end, we got to implement a highly scalable near realtime Change Data Replication service that "works" and deployed to production in a matter of few days!

          See more
          Robert Zuber

          We use MongoDB as our primary #datastore. Mongo's approach to replica sets enables some fantastic patterns for operations like maintenance, backups, and #ETL.

          As we pull #microservices from our #monolith, we are taking the opportunity to build them with their own datastores using PostgreSQL. We also use Redis to cache data we’d never store permanently, and to rate-limit our requests to partners’ APIs (like GitHub).

          When we’re dealing with large blobs of immutable data (logs, artifacts, and test results), we store them in Amazon S3. We handle any side-effects of S3’s eventual consistency model within our own code. This ensures that we deal with user requests correctly while writes are in process.

          See more