Spring

Spring Framework, is an application framework and inversion of control container for the Java platform.

TOC

The framework’s core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE (Enterprise Edition) platform. Although the framework does not impose any specific programming model, it has become popular in the Java community as an addition to the Enterprise JavaBeans (EJB) model. The Spring Framework is open source

Framework

The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.

A key element of Spring is infrastructural support at the application level: Spring focuses on the “plumbing” of enterprise applications so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments.

  • Core technologies: dependency injection, events, resources, i18n, validation, data binding, type conversion, SpEL, AOP.
  • Testing: mock objects, TestContext framework, Spring MVC Test, WebTestClient.
  • Data Access: transactions, DAO support, JDBC, ORM, Marshalling XML.
  • Spring MVC and Spring WebFlux web frameworks.
  • Integration: remoting, JMS, JCA, JMX, email, tasks, scheduling, cache.
  • Languages: Kotlin, Groovy, dynamic languages.

Modules

Short name Long name Description
DI Dependency Injection run-time dependency, link
IoC Inversion of Control  
POJO Plain Old Java Object  
LDAP Lightweight Directory Access Protocol  
SOAP Simple Object Access Protocol  
  • Spring Boot, makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”
  • Spring Framework, provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform
  • Spring Data, to use data access technologies, relational and non-relational databases, map-reduce frameworks, and cloud-based data services
    • Spring Data JDBC
    • Spring Data JDBC Extensions
    • Spring Data JPA
    • Spring Data LDAP
    • Spring Data MongoDB
    • Spring Data Redis
    • Spring Data R2DBC
    • Spring Data REST
    • Spring Data for Apache Cassandra
    • Spring Data for Apache Geode
    • Spring Data for Apache Solr
    • Spring Data for Pivotal GemFire
    • Spring Data Couchbase
    • Spring Data Elasticsearch
    • Spring Data Envers
    • Spring Data Neo4j
    • Spring for Apache Hadoop
  • Spring Cloud, provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state)
    • Spring Cloud Azure
    • Spring Cloud Alibaba
    • Spring Cloud for Amazon Web Services
    • Spring Cloud Bus
    • Spring Cloud CLI
    • Spring Cloud for Cloud Foundry
    • Spring Cloud - Cloud Foundry Service Broker
    • Spring Cloud Cluster
    • Spring Cloud Commons
    • Spring Cloud Config
    • Spring Cloud Connectors
    • Spring Cloud Consul
    • Spring Cloud Contract
    • Spring Cloud Function
    • Spring Cloud Gateway
    • Spring Cloud GCP
    • Spring Cloud Netflix
    • Spring Cloud Open Service Broker
    • Spring Cloud Pipelines
    • Spring Cloud Schema Registry
    • Spring Cloud Security
    • Spring Cloud Skipper
    • Spring Cloud Sleuth
    • Spring Cloud Stream
    • Spring Cloud Stream Applications
    • Spring Cloud Stream App Starters
    • Spring Cloud Task
    • Spring Cloud Task App Starters
    • Spring Cloud Vault
    • Spring Cloud Zookeeper
    • Spring Cloud App Broker
    • Spring Cloud Circuit Breaker
    • Spring Cloud Kubernetes
    • Spring Cloud OpenFeign
  • Spring Cloud Data Flow, provides tools to create complex topologies for streaming and batch data pipelines
  • Spring Security, providing both authentication and authorization to Java applications
    • Spring Security Kerberos
    • Spring Security OAuth
    • Spring Security SAML
  • Spring Session, provides an API and implementations for managing a user’s session information
    • Spring Session Core
    • Spring Session Data Redis
    • Spring Session JDBC
    • Spring Session Hazelcast
    • Spring Session MongoDB
    • Spring Session for Apache Geode & Pivotal GemFire
  • Spring Integration, enables lightweight messaging within Spring-based applications and supports integration with external systems via declarative adapters
  • Spring HATEOAS, provides some APIs to ease creating REST representations that follow the HATEOAS principle when working with Spring and especially Spring MVC
  • Spring REST Docs, helps you to document RESTful service
  • Spring Batch, 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
  • Spring AMQP, spring-amqp is the base abstraction, and spring-rabbit is the RabbitMQ implementation
  • Spring for Android, provide components of the Spring family of projects for use in Android apps
  • Spring CredHub, client-side support for storing, retrieving, and deleting credentials from a CredHub server running in a Cloud Foundry platform
  • Spring Flo, JavaScript library that offers a basic embeddable HTML5 visual builder for pipelines and simple graphs
  • Spring for Apache Kafka, applies core Spring concepts to the development of Kafka-based messaging solutions
  • Spring LDAP, simplify LDAP programming in Java
  • Spring Mobile, provides capabilities to detect the type of device making a request to your Spring web site and serve alternative views based on that device
  • Spring Roo, A next-generation rapid application development tool for Java developers
  • Spring Shell, builds a full featured shell (aka command line) application by depending on the Spring Shell jars and adding their own commands (which come as methods on spring beans).
  • Spring Statemachine, defines high level logic outside of your application and then rely on the state machine to manage state
  • Spring Vault, provides familiar Spring abstractions and client-side support for accessing, storing and revoking secrets
    • Vault, HashiCorp, secure, store and tightly control access to tokens, passwords, certificates, encryption keys for protecting secrets and other sensitive data using a UI, CLI, or HTTP API
  • Spring Web Flow,
  • Spring Web Services, aims to facilitate contract-first SOAP service development, allowing for the creation of flexible web services using one of the many ways to manipulate XML payloads

Resources