All Projects → spring-projects → Spring Data Mongodb

spring-projects / Spring Data Mongodb

Provide support to increase developer productivity in Java when using MongoDB. Uses familiar Spring concepts such as a template classes for core API usage and lightweight repository style data access.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Spring Data Mongodb

Spring Data Redis
Provides support to increase developer productivity in Java when using Redis, a key-value store. Uses familiar Spring concepts such as a template classes for core API usage and lightweight repository style data access.
Stars: ✭ 1,293 (+3.19%)
Mutual labels:  spring-data, framework, spring, ddd
Spring Data Neo4j
Provide support to increase developer productivity in Java when using Neo4j. Uses familiar Spring concepts such as a template classes for core API usage and lightweight repository style data access.
Stars: ✭ 662 (-47.17%)
Mutual labels:  spring-data, framework, spring, ddd
Spring Data Rest
Simplifies building hypermedia-driven REST web services on top of Spring Data repositories
Stars: ✭ 743 (-40.7%)
Mutual labels:  spring-data, framework, spring, ddd
Spring Data Jpa
Simplifies the development of creating a JPA-based data access layer.
Stars: ✭ 2,238 (+78.61%)
Mutual labels:  spring-data, framework, spring, ddd
Spring Data Cassandra
Provides support to increase developer productivity in Java when using Apache Cassandra. Uses familiar Spring concepts such as a template classes for core API usage and lightweight repository style data access.
Stars: ✭ 315 (-74.86%)
Mutual labels:  spring-data, framework, spring, ddd
Spring Data R2dbc
Provide support to increase developer productivity in Java when using Reactive Relational Database Connectivity. Uses familiar Spring concepts such as a DatabaseClient for core API usage and lightweight repository style data access.
Stars: ✭ 534 (-57.38%)
Mutual labels:  spring-data, framework, spring, ddd
Spring Data Commons
Spring Data Commons. Interfaces and code shared between the various datastore specific implementations.
Stars: ✭ 542 (-56.74%)
Mutual labels:  spring-data, framework, spring, ddd
All Things Cqrs
Comprehensive guide to a couple of possible ways of synchronizing two states with Spring tools. Synchronization is shown by separating command and queries in a simple CQRS application.
Stars: ✭ 474 (-62.17%)
Mutual labels:  mongodb, spring, ddd
Springbootunity
rabbitmq、redis、scheduled、socket、mongodb、Swagger2、spring data jpa、Thymeleaf、freemarker etc. (muti module spring boot project) (with spring boot framework,different bussiness scence with different technology。)
Stars: ✭ 845 (-32.56%)
Mutual labels:  mongodb, spring
Spring Reactive Sample
Spring 5 Reactive playground
Stars: ✭ 867 (-30.81%)
Mutual labels:  spring-data, spring
Freedom
Freedom是一个基于六边形架构的框架,可以支撑充血的领域模型范式。
Stars: ✭ 972 (-22.43%)
Mutual labels:  framework, ddd
Multi Tenant Spring Mongodb
Stars: ✭ 53 (-95.77%)
Mutual labels:  mongodb, spring
Nodercms
轻量级内容管理系统,基于 Node.js + MongoDB 开发,拥有灵活的内容模型以及完善的权限角色机制。
Stars: ✭ 990 (-20.99%)
Mutual labels:  mongodb, framework
Microservices Springboot
Example of microservices application with Spring Boot, Zuul, Eureka, MongoDB and RabbitMQ.
Stars: ✭ 53 (-95.77%)
Mutual labels:  mongodb, spring
Spring Boot Examples
about learning Spring Boot via examples. Spring Boot 教程、技术栈示例代码,快速简单上手教程。
Stars: ✭ 26,812 (+2039.82%)
Mutual labels:  mongodb, spring
Spring Mvc Thymeleaf Crud
Spring MVC CRUD Application with Thymeleaf, HTML5, CSS3 and Bootstrap
Stars: ✭ 14 (-98.88%)
Mutual labels:  spring-data, spring
Spring Security
Spring Security
Stars: ✭ 6,434 (+413.49%)
Mutual labels:  framework, spring
Lectures
Lecture scripts and slides I use during the Software Engineering course at TU Dresden
Stars: ✭ 52 (-95.85%)
Mutual labels:  spring, ddd
Event Sourcing Castanha
An Event Sourcing service template with DDD, TDD and SOLID. It has High Cohesion and Loose Coupling, it's a good start for your next Microservice application.
Stars: ✭ 68 (-94.57%)
Mutual labels:  mongodb, ddd
Spring Examples
SpringBoot Examples
Stars: ✭ 67 (-94.65%)
Mutual labels:  spring-data, mongodb

image:https://spring.io/badges/spring-data-mongodb/ga.svg[Spring Data MongoDB,link=https://projects.spring.io/spring-data-mongodb#quick-start] image:https://spring.io/badges/spring-data-mongodb/snapshot.svg[Spring Data MongoDB,link=https://projects.spring.io/spring-data-mongodb#quick-start]

= Spring Data MongoDB image:https://jenkins.spring.io/buildStatus/icon?job=spring-data-mongodb%2Fmaster&subject=Build[link=https://jenkins.spring.io/view/SpringData/job/spring-data-mongodb/] https://gitter.im/spring-projects/spring-data[image:https://badges.gitter.im/spring-projects/spring-data.svg[Gitter]]

The primary goal of the https://projects.spring.io/spring-data[Spring Data] project is to make it easier to build Spring-powered applications that use new data access technologies such as non-relational databases, map-reduce frameworks, and cloud based data services.

The Spring Data MongoDB project aims to provide a familiar and consistent Spring-based programming model for new datastores while retaining store-specific features and capabilities. The Spring Data MongoDB project provides integration with the MongoDB document database. Key functional areas of Spring Data MongoDB are a POJO centric model for interacting with a MongoDB +Document+ and easily writing a repository style data access layer.

== Code of Conduct

This project is governed by the https://github.com/spring-projects/.github/blob/e3cc2ff230d8f1dca06535aa6b5a4a23815861d4/CODE_OF_CONDUCT.md[Spring Code of Conduct]. By participating, you are expected to uphold this code of conduct. Please report unacceptable behavior to [email protected].

== Getting Started

Here is a quick teaser of an application using Spring Data Repositories in Java:

[source,java]

public interface PersonRepository extends CrudRepository<Person, Long> {

List findByLastname(String lastname);

List findByFirstnameLike(String firstname); }

@Service public class MyService {

private final PersonRepository repository;

public MyService(PersonRepository repository) { this.repository = repository; }

public void doWork() {

repository.deleteAll();

Person person = new Person();
person.setFirstname("Oliver");
person.setLastname("Gierke");
repository.save(person);

List<Person> lastNameResults = repository.findByLastname("Gierke");
List<Person> firstNameResults = repository.findByFirstnameLike("Oli*");

} }

@Configuration @EnableMongoRepositories class ApplicationConfig extends AbstractMongoClientConfiguration {

@Override protected String getDatabaseName() { return "springdata"; } }

=== Maven configuration

Add the Maven dependency:

[source,xml]

org.springframework.data spring-data-mongodb ${version}.RELEASE ----

If you'd rather like the latest snapshots of the upcoming major version, use our Maven snapshot repository and declare the appropriate dependency version.

[source,xml]

org.springframework.data spring-data-mongodb ${version}.BUILD-SNAPSHOT spring-libs-snapshot Spring Snapshot Repository https://repo.spring.io/libs-snapshot ----

== Upgrading from 2.x

The 4.0 MongoDB Java Driver does no longer support certain features that have already been deprecated in one of the last minor versions. Some of the changes affect the initial setup configuration as well as compile/runtime features. We summarized the most typical changes one might encounter.

=== XML Namespace

.Changed XML Namespace Elements and Attributes: |=== Element / Attribute | 2.x | 3.x

| <mongo:mongo-client /> | Used to create a com.mongodb.MongoClient | Now exposes a com.mongodb.client.MongoClient

| <mongo:mongo-client replica-set="..." /> | Was a comma delimited list of replica set members (host/port) | Now defines the replica set name. + Use <mongo:client-settings cluster-hosts="..." /> instead

| <mongo:db-factory writeConcern="..." /> | NONE, NORMAL, SAFE, FSYNC_SAFE, REPLICAS_SAFE, MAJORITY | W1, W2, W3, UNAKNOWLEDGED, AKNOWLEDGED, JOURNALED, MAJORITY |===

.Removed XML Namespace Elements and Attributes: |=== Element / Attribute | Replacement in 3.x | Comment

| <mongo:db-factory mongo-ref="..." /> | <mongo:db-factory mongo-client-ref="..." /> | Referencing a com.mongodb.client.MongoClient.

| <mongo:mongo-client credentials="..." /> | <mongo:mongo-client credential="..." /> | Single authentication data instead of list.

| <mongo:client-options /> | <mongo:client-settings /> | See com.mongodb.MongoClientSettings for details. |===

.New XML Namespace Elements and Attributes: |=== Element | Comment

| <mongo:db-factory mongo-client-ref="..." /> | Replacement for <mongo:db-factory mongo-ref="..." />

| <mongo:db-factory connection-string="..." /> | Replacement for uri and client-uri.

| <mongo:mongo-client connection-string="..." /> | Replacement for uri and client-uri.

| <mongo:client-settings /> | Namespace element for com.mongodb.MongoClientSettings.

|===

=== Java Configuration

.Java API changes |=== Type | Comment

| MongoClientFactoryBean | Creates com.mongodb.client.MongoClient instead of com.mongodb.MongoClient + Uses MongoClientSettings instead of MongoClientOptions.

| MongoDataIntegrityViolationException | Uses WriteConcernResult instead of WriteResult.

| BulkOperationException | Uses MongoBulkWriteException and com.mongodb.bulk.BulkWriteError instead of BulkWriteException and com.mongodb.BulkWriteError

| ReactiveMongoClientFactoryBean | Uses com.mongodb.MongoClientSettings instead of com.mongodb.async.client.MongoClientSettings

| ReactiveMongoClientSettingsFactoryBean | Now produces com.mongodb.MongoClientSettings instead of com.mongodb.async.client.MongoClientSettings |===

.Removed Java API: |=== 2.x | Replacement in 3.x | Comment

| MongoClientOptionsFactoryBean | MongoClientSettingsFactoryBean | Creating a com.mongodb.MongoClientSettings.

| AbstractMongoConfiguration | AbstractMongoClientConfiguration + (Available since 2.1) | Using com.mongodb.client.MongoClient.

MongoDbFactory#getLegacyDb()
-

| SimpleMongoDbFactory | SimpleMongoClientDbFactory + (Available since 2.1) |

| MapReduceOptions#getOutputType() | MapReduceOptions#getMapReduceAction() | Returns MapReduceAction instead of MapReduceCommand.OutputType.

| Meta\|Query maxScan & snapshot | | |===

=== Other Changes

==== UUID Types

The MongoDB UUID representation can now be configured with different formats. This has to be done via MongoClientSettings as shown in the snippet below.

.UUID Codec Configuration

[source,java]

static class Config extends AbstractMongoClientConfiguration {

@Override
public void configureClientSettings(MongoClientSettings.Builder builder) {
    builder.uuidRepresentation(UuidRepresentation.STANDARD);
}

// ...

}

====

== Getting Help

Having trouble with Spring Data? We’d love to help!

== Reporting Issues

Spring Data uses Github as issue tracking system to record bugs and feature requests. If you want to raise an issue, please follow the recommendations below:

== Building from Source

You don’t need to build from source to use Spring Data (binaries in https://repo.spring.io[repo.spring.io]), but if you want to try out the latest and greatest, Spring Data can be easily built with the https://github.com/takari/maven-wrapper[maven wrapper]. You also need JDK 1.8.

[source,bash]

$ ./mvnw clean install

If you want to build with the regular mvn command, you will need https://maven.apache.org/run-maven/index.html[Maven v3.5.0 or above].

Also see link:CONTRIBUTING.adoc[CONTRIBUTING.adoc] if you wish to submit pull requests, and in particular please sign the https://cla.pivotal.io/sign/spring[Contributor’s Agreement] before your first non-trivial change.

=== Building reference documentation

Building the documentation builds also the project without running tests.

[source,bash]

$ ./mvnw clean install -Pdistribute

The generated documentation is available from target/site/reference/html/index.html.

== Guides

The https://spring.io/[spring.io] site contains several guides that show how to use Spring Data step-by-step:

== Examples

== License

Spring Data MongoDB is Open Source software released under the https://www.apache.org/licenses/LICENSE-2.0.html[Apache 2.0 license].

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].