wiki:Notes/JavaSpring

Java Spring Framework

Why Java Spring ? Because it's pretty much thought of everything that systems developers might encounter at some point.

Does this project need everything ? No, but it good to know that something is there rather than not know it's there, especially if it's something you will need and don't know it yet. The need for Messaging was a prime example ... some concepts from Enterprise JavaBeans may also be useful, such as deployment descriptors.

http://spring.io/

Spring helps development teams everywhere build simple, portable,

fast and flexible JVM-based systems and applications.

Build Anything - Write clean, testable code against the infrastructure components of your choice and accomplish any task – without re-inventing the wheel.

Run Anywhere - Keep it portable – Spring-based apps run anywhere the JVM does. Deploy standalone, in an app server, on a PaaS or all of the above ...

http://projects.spring.io/spring-framework/

Spring Framework Reference Documentation - http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/

http://en.wikipedia.org/wiki/Spring_Framework

The Spring Framework includes several modules that provide a range of services:

Spring Core Container: This is the base module of Spring and provides spring containers ( BeanFactory and ApplicationContext).

Aspect-oriented programming: enables implementing cross-cutting concerns.

Authentication and authorization: configurable security processes that support a range of standards, protocols, tools and practices via the Spring Security sub-project (formerly Acegi Security System for Spring).

Convention over configuration: a rapid application development solution for Spring-based enterprise applications is offered in the Spring Roo module

Data access: working with relational database management systems on the Java platform using JDBC and object-relational mapping tools and with NoSQL databases

Inversion of control container: configuration of application components and lifecycle management of Java objects, done mainly via dependency injection

Messaging: configurative registration of message listener objects for transparent message-consumption from message queues via JMS, improvement of message sending over standard JMS APIs

Model–view–controller: an HTTP- and servlet-based framework providing hooks for extension and customization for web applications and RESTful Web services.

Remote access framework: configurative RPC-style marshalling of Java objects over networks supporting RMI, CORBA and HTTP-based protocols including Web services (SOAP)

Transaction management: unifies several transaction management APIs and coordinates transactions for Java objects

Remote management: configurative exposure and management of Java objects for local or remote configuration via JMX

Testing: support classes for writing unit tests and integration tests

See JavaSpring/Outline

Projects

https://spring.io/projects

Spring IO Platform

Provides a cohesive, versioned platform for building modern applications. It is a modular, enterprise-grade distribution that delivers a curated set of dependencies.

Spring Boot

Takes an opinionated view of building Spring applications and gets you up and running as quickly as possible.

Spring Framework

Provides core support for dependency injection, transaction management, web apps, data access, messaging and more.

Spring XD

Simplifies the development of big data applications by addressing ingestion, analytics, batch jobs and data export.

Spring Cloud

Provides a set of tools for common patterns in distributed systems. Useful for building and deploying microservices.

Spring Data

Provides a consistent approach to data access – relational, non-relational, map-reduce, and beyond.

Spring Integration

Supports the well-known Enterprise Integration Patterns via lightweight messaging and declarative adapters.

Spring Batch

Simplifies and optimizes the work of processing high-volume batch operations.

Spring Security

Protects your application with comprehensive and extensible authentication and authorization support.

Spring HATEOAS

Simplifies creating REST representations that follow the HATEOAS principle.

Spring Social

Easily connects your applications with third-party APIs such as Facebook, Twitter, LinkedIn?, and more.

Spring AMQP

Applies core Spring concepts to the development of AMQP-based messaging solutions.

Spring Mobile

Simplifies the development of mobile web apps through device detection and progressive rendering options.

Spring for Android

Provides key Spring components for use in developing Android applications.

Spring Web Flow

Supports building web applications with controlled navigation such as checking in for a flight or applying for a loan.

Spring Web Services

Facilitates the development of contract-first SOAP web services.

Spring LDAP

Simplifies the development of applications using LDAP using Spring's familiar template-based approach.

Spring Session

Spring Session provides an API and implementations for managing a user’s session information.

Spring Scala

Brings the power and expressiveness of Scala together with the productivity and deep ecosystem of Spring.

Spring Roo

Makes it fast and easy to build full Java applications in minutes.

Spring BlazeDS Integration

Provides first-class support for using Adobe BlazeDS in Spring-based apps with Adobe Flex front-end clients.

Spring Loaded

Boosts development productivity by reloading class file changes—as you make them—within your app's JVM.

Spring Shell

Provides a powerful foundation for building command-line apps using a Spring-based programming model.

REST Shell

Makes writing and testing RESTful applications easier with CLI-based resource discovery and interaction.

http://platform.spring.io/platform/

The Spring IO platform includes Foundation Layer modules and Execution Layer domain-specific runtimes (DSRs). The Foundation layer represents the core Spring modules and associated third-party dependencies that have been harmonized to ensure a smooth development experience. The DSRs provided by the Spring IO Execution Layer dramatically simplify building production-ready, JVM-based workloads.

The first release of Spring IO includes two DSRs: Spring Boot and Grails ...

Features

One platform, many workloads - build web, integration, batch, reactive or big data applications

Radically simplified development experience with Spring Boot

Production-ready features provided out of the box

Curated and harmonized dependencies that just work together

Modular platform that allows developers to deploy only the parts they need

Support for embedded runtimes, classic application server, and PaaS deployments

Depends only on Java SE, and supports Groovy, Grails and some Java EE

Works with your existing dependency management tools such as Maven and Gradle

The Spring IO Platform is certified to work on JDK 7 and 8*

Spring IO Platform Reference Guide - http://docs.spring.io/platform/docs/current/reference/htmlsingle/

Spring Framework API - http://docs.spring.io/spring/docs/current/javadoc-api/

http://www.springbyexample.org/

Cohesion / De-cohesion

http://en.wikipedia.org/wiki/Cohesion_%28computer_science%29

http://en.wikipedia.org/wiki/Inversion_of_control

http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/beans.html - The IoC container

http://martinfowler.com/articles/injection.html

Also See

http://en.wikipedia.org/wiki/Enterprise_JavaBeans

JavaSpring/Outline

Last modified 3 years ago Last modified on 05/08/2015 05:27:01 AM