Rewrite Spring Data landing page

This commit is contained in:
Greg Turnquist
2015-08-21 14:14:09 -05:00
parent f7d986c199
commit b27688e3f4
4 changed files with 157 additions and 14 deletions

View File

@@ -23,8 +23,8 @@ project: spring-data
github_repo_url: http://github.com/spring-projects/spring-data
# If you want to include a custom pom.xml or gradle template set these value to true and add _include files
custom_pom_template: false
custom_gradle_template: false
custom_pom_template: true
custom_gradle_template: true
### The following properties are constant for most projects

18
_includes/build.gradle Normal file
View File

@@ -0,0 +1,18 @@
buildscript {
dependencies {
classpath "io.spring.gradle:dependency-management-plugin:0.4.0.RELEASE"
}
}
apply plugin: "io.spring.dependency-management"
dependencyManagement {
imports {
mavenBom '{@= groupId @}:spring-data-releasetrain:{@= version @}'
}
}
dependencies {
compile '{@= groupId @}:spring-data-jpa'
compile '{@= groupId @}:spring-data-rest'
}

11
_includes/pom.xml Normal file
View File

@@ -0,0 +1,11 @@
<dependencyManagement>
<dependencies>
<dependency>
<groupId>{@= groupId @}</groupId>
<artifactId>spring-data-releasetrain</artifactId>
<version>{@= version @}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

View File

@@ -1,4 +1,18 @@
---
title: Spring Data
badges:
# Customize your project's badges. Delete any entries that do not apply.
custom:
- name: Source (GitHub)
url: https://github.com/spring-projects/spring-data
icon: github
- name: StackOverflow
url: http://stackoverflow.com/questions/tagged/spring-data
icon: stackoverflow
---
<!DOCTYPE HTML>
<html lang="en-US">
@@ -10,6 +24,75 @@ Makes it easy to use new data access technologies, such as non-relational databa
{% capture main_content %}
Spring Data provides a simple way to write the lowest level, boiler plate operations you have always written with ease. No need to implement the same handful of operations as you embark on a new project. Instead, focus on the domain model of your business and have basic persistence APIs ready to go. When it's time to write the complex data warehouse report that involves joining a dozen different bits of data, go into your datastore's specific APIs to leverage them as needed. You also inherit best practices for repository-based solutions. Additionally, export your repositories with a full blown hypermedia-driven API by adding a single dependency.
## Features
* Rapid creation of persistence functionality (change, read, update, delete)
* Datastore-neutral approach
* Declarative way of defining operations
* Easy access to datastore-specific APIs (JpaTemplate, MongoTemplate, etc.)
* Repository and datastore best practices
For a quick taste, look at the following domain object:
```java
@Entity
public class Employee {
private @Id @GeneratedValue Long id;
private String firstName;
private String lastName;
private String description;
private Employee() {}
public Employee(String firstName, String lastName, String description) {
this.firstName = firstName;
this.lastName = lastName;
this.description = description;
}
}
```
This defines a simple JPA entity with a few fields. The following code shows a simple repository definition:
```java
public interface EmployeeRepository extends CrudRepository<Employee, Long> {
Employee findByFirstName(String firstName);
List<Employee> findByLastName(String lastName);
}
```
This interface extends Spring Data's `CrudRepository` and defines the type (`Employee`) and the id type (`Long`).
Put this code inside a Spring Boot application with `spring-boot-starter-data-jpa` like this:
```java
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
```
Launch your app and Spring Data (having been autoconfigured by Boot, [SQL](http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-sql) or [NoSQL](http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-nosql)) will automatically craft a concrete set of operations:
* `save(Employee)`
* `delete(Employee)`
* `find(Employee)`
* `find(Long)`
* `findAll()`
On top of the CRUD operations inherited from `CrudRepository`, the two interface methods define **finders**.
* `findByFirstName` automatically writes a JPA query based on firstName and only return the first employee found.
* `findByLastName` automatically writes a JPA query based on lastName and returns a collection.
<a name="main-projects"></a>
## Main Projects
@@ -19,59 +102,86 @@ Makes it easy to use new data access technologies, such as non-relational databa
Makes it easy to implement JPA-based repositories.
{% endcapture %}
{% include project_block.md site_url="/spring-data-jpa" repo_url="http://github.com/spring-projects/spring-data-jpa" project_title="Spring Data JPA" project_description=project_description %}
{% include project_block.md site_url="http://projects.spring.io/spring-data-jpa" repo_url="http://github.com/spring-projects/spring-data-jpa" project_title="Spring Data JPA" project_description=project_description %}
<!-- Spring Data MongoDB -->
{% capture project_description %}
Spring based, object-document support and repositories for MongoDB.
{% endcapture %}
{% include project_block.md site_url="/spring-data-mongodb" repo_url="http://github.com/spring-projects/spring-data-mongodb" project_title="Spring Data MongoDB" project_description=project_description %}
{% include project_block.md site_url="http://projects.spring.io/spring-data-mongodb" repo_url="http://github.com/spring-projects/spring-data-mongodb" project_title="Spring Data MongoDB" project_description=project_description %}
<!-- Spring Data Neo4j -->
{% capture project_description %}
Spring based, object-graph support and repositories for Neo4j.
{% endcapture %}
{% include project_block.md site_url="/spring-data-neo4j" repo_url="http://github.com/spring-projects/spring-data-neo4j" project_title="Spring Data Neo4j" project_description=project_description %}
{% include project_block.md site_url="http://projects.spring.io/spring-data-neo4j" repo_url="http://github.com/spring-projects/spring-data-neo4j" project_title="Spring Data Neo4j" project_description=project_description %}
<!-- Spring Data Redis -->
{% capture project_description %}
Provides easy configuration and access to Redis from Spring applications.
{% endcapture %}
{% include project_block.md site_url="/spring-data-redis" repo_url="http://github.com/spring-projects/spring-data-redis" project_title="Spring Data Redis" project_description=project_description %}
{% include project_block.md site_url="http://projects.spring.io/spring-data-redis" repo_url="http://github.com/spring-projects/spring-data-redis" project_title="Spring Data Redis" project_description=project_description %}
<!--Spring Data Solr -->
{% capture project_description %}
Spring Data module for Apache Solr.
{% endcapture %}
{% include project_block.md site_url="https://github.com/spring-projects/spring-data-solr" repo_url="https://github.com/spring-projects/spring-data-solr" project_title="Spring Data Solr" project_description=project_description %}
{% include project_block.md site_url="http://projects.spring.io/spring-data-solr" repo_url="https://github.com/spring-projects/spring-data-solr" project_title="Spring Data Solr" project_description=project_description %}
<!-- Spring For Hadoop -->
{% capture project_description %}
Simplifies Apache Hadoop by providing a unified configuration model and easy to use APIs for using HDFS, MapReduce, Pig, and Hive.
{% endcapture %}
{% include project_block.md site_url="/spring-hadoop" repo_url="http://github.com/spring-projects/spring-hadoop" project_title="Spring for Hadoop" project_description=project_description %}
{% include project_block.md site_url="http://projects.spring.io/spring-hadoop" repo_url="http://github.com/spring-projects/spring-hadoop" project_title="Spring for Hadoop" project_description=project_description %}
<!--Spring Data GemFire -->
{% capture project_description %}
Provides easy configuration and access to GemFire from Spring applications.
{% endcapture %}
{% include project_block.md site_url="/spring-data-gemfire" repo_url="http://github.com/spring-projects/spring-data-gemfire" project_title="Spring Data GemFire" project_description=project_description %}
{% include project_block.md site_url="http://projects.spring.io/spring-data-gemfire" repo_url="http://github.com/spring-projects/spring-data-gemfire" project_title="Spring Data GemFire" project_description=project_description %}
<!--Spring Data REST -->
{% capture project_description %}
Exports Spring Data repositories as hypermedia-driven RESTful resources.
{% endcapture %}
{% include project_block.md site_url="/spring-data-rest" repo_url="http://github.com/spring-projects/spring-data-rest" project_title="Spring Data REST" project_description=project_description %}
{% include project_block.md site_url="http://projects.spring.io/spring-data-rest" repo_url="http://github.com/spring-projects/spring-data-rest" project_title="Spring Data REST" project_description=project_description %}
<!--Spring Data JDBC Extensions -->
{% capture project_description %}
Provides extensions to the JDBC support provided in the Spring Framework.
{% endcapture %}
{% include project_block.md site_url="/spring-data-jdbc-ext" repo_url="http://github.com/spring-projects/spring-data-jdbc-ext" project_title="Spring Data JDBC Extensions" project_description=project_description %}
{% include project_block.md site_url="http://projects.spring.io/spring-data-jdbc-ext" repo_url="http://github.com/spring-projects/spring-data-jdbc-ext" project_title="Spring Data JDBC Extensions" project_description=project_description %}
<span id="quick-start"></span>
## Quick Start
{% include download_widget.md %}
## Release Trains
Spring Data is an umbrella project consisting of independent projects with, in principle, different release cadences. To manage the protfolio, a BOM (Bill of Materials) is published with a curated set of dependencies on the individual project. The release trains have names, not versions, to avoid confusion with the sub-projects. The names are an alphabetic sequence (so you can sort them chronologically) with names of famous computer scientists and software developers. When point releases of the individual projects accumulate to a critical mass, or if there is a critical bug in one of them that needs to be available to everyone, the release train will push out "service releases" with names ending ".SRX", where "X" is a number.
If you are using Spring Boot, you will inherit predefined versions for each project. To plugin a newer or older release train, use the BOM information shown above to adjust the version number.
The following projects have Spring Boot starters:
* org.springframework.boot:spring-boot-starter-data-jpa
* org.springframework.boot:spring-boot-starter-data-mongodb
* org.springframework.boot:spring-boot-starter-data-neo4j
* org.springframework.boot:spring-boot-starter-data-redis
* org.springframework.boot:spring-boot-starter-data-solr
* org.springframework.boot:spring-boot-starter-data-gemfire
* org.springframework.boot:spring-boot-starter-data-rest
The following projects will inherit versioning as well:
* org.springframework.data:spring-data-hadoop
* org.springframework.data:spring-data-oracle
<div style="padding-bottom: 20px;"></div>
<a name="community-projects"></a>
@@ -82,7 +192,7 @@ Provides extensions to the JDBC support provided in the Spring Framework.
{% capture project_description %}
Spring Data module for Couchbase.
{% endcapture %}
{% include project_block.md site_url="/spring-data-couchbase" repo_url="https://github.com/spring-projects/spring-data-couchbase" project_title="Spring Data Couchbase" project_description=project_description %}
{% include project_block.md site_url="http://projects.spring.io/spring-data-couchbase" repo_url="https://github.com/spring-projects/spring-data-couchbase" project_title="Spring Data Couchbase" project_description=project_description %}
<!--Spring Data Elasticsearch -->
{% capture project_description %}
@@ -94,7 +204,7 @@ Spring Data module for Elasticsearch.
{% capture project_description %}
Spring Data module for Cassandra.
{% endcapture %}
{% include project_block.md site_url="/spring-data-cassandra" repo_url="https://github.com/spring-projects/spring-data-cassandra" project_title="Spring Data Cassandra" project_description=project_description %}
{% include project_block.md site_url="http://projects.spring.io/spring-data-cassandra" repo_url="https://github.com/spring-projects/spring-data-cassandra" project_title="Spring Data Cassandra" project_description=project_description %}
<!--Spring Data DynamoDB -->
{% capture project_description %}
@@ -105,6 +215,10 @@ Spring Data module for DynamoDB.
<!-- end main_content -->
{% endcapture %}
{% include project_group_page.html %}
{% capture related_resources %}
{% endcapture %}
{% include project_page.html %}
</html>