Each sub-project of 1 Spring
Spring framework (CORE ):
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
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.
Flexible dependency injection with XML and annotation-based configuration styles.
Advanced Support for Aspect-Oriented Programming with proxy-based and aspectj-based variants.
Support for declarative transactions, declarative caching, declarative validation, and declarative formatting.
Powerful extends actions for working with common Java EE specifications such as JDBC, JPA, JTA and JMS.
First-class support for common open source frameworks such as Hibernate and quartz.
A flexible web framework for building restful MVC applications and service endpoints.
Rich testing facilities for unit tests as well as for integration tests.
Spring web flow:
Spring web flow is a spring MVC extension that allows implementing the "flows" of a Web application. A flow encapsulates a sequence of steps that guide a user through the execution of some business tasks. it spans multiple
HTTP requests, has state, deals with transactional data, is reusable, and may be dynamic and long-running in nature.
Spring web flow provides a declarative Flow Definition Language for authoring flows on a higher level of role action. It allows it to be integrated into a wide range of applications without any changes (to the flow programming
Model) including spring MVC, JSF, and even Portlet web applications.
Spring blazeds integration:
Spring blazeds integration is a top-level spring project, and a component of the complete spring web stack. this project's purpose is to make it easier to build spring-powered rich Internet applications using Adobe Flex
As the front-end client. it aims to achieve this purpose by providing first-class support for using the open source Adobe blazeds project and its powerful remoting and messaging facilities in combination with the familiar spring programming model.
Spring security is a powerful and highly customizable authentication and access-control framework. It is the de-facto standard for securing spring-based applications.
Spring Security oauth:
The purpose of spring Security oauth is to provide an oauth implementation for spring security. Support is provided for the implementation of oauth providers and oauth consumers.
Spring dynamic modules (eclipse Gemini ):
The spring dynamic modules for osgi (TM) service platforms project makes it easy to build spring applications that run in an osgi framework. A spring application written in this way provides better separation of modules,
The ability to dynamically add, remove, and update modules in a running system, the ability to deploy multiple versions of a module simultaneously (and have clients automatically bind to the appropriate one ), and a dynamic service model. osgi is a registered
Trademark of the osgi alliance. Project name is used pending approval from the osgi alliance.
Spring batch is a lightweight, comprehensive batch framework designed to enable the development of robust batch applications vital for the daily operations of enterprise systems.
Spring integration provides an extension of the spring programming model to support the well-known enterprise integration patterns. It enables lightweight messaging within spring-based applications and supports integration
With external systems via declarative adapters. those adapters provide a higher-level of processing action over Spring's support for remoting, messaging, and scheduling. spring integration's primary goal is to provide a simple model for building enterprise integration
Solutions while maintaining the separation of concerns that is essential for producing maintainable, testable code.
The spring amqp project applies core spring concepts to the Development of amqp-based messaging solutions. we provide a "template" as a high-level processing action for sending and processing messages. we also provide support
Message-driven pojos. these libraries facilitate management of amqp resources while promoting the use of dependency injection and declarative configuration. in all of these cases, you will see similarities to the JMS support in the Spring framework. the project
Consists of both Java and. Net versions.
Spring for Android:
Spring for Android is an extension of the Spring framework that aims to simplify the development of native Android applications.
Spring mobile is an extension to spring MVC that aims to simplify the development of mobile Web applications.
A device resolver implements action for server-side detection of mobile devices.
Site preference management that allows the user to indicate if he or she prefers a "normal" or "mobile" experience.
A site switcher capable of switching the user to the most appropriate site, either mobile or normal, based on his or her device and optionally indicated site preference.
Spring social is an extension of the Spring framework that allows you to connect your applications with software-as-a-service (SAAS) providers such as Facebook and Twitter.
Spring data makes 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 as well as provide improved support
For relational database technologies.
2spring design goals
In Java EE application development, pojo and JavaBean are supported to enable interface-oriented application development, and the OO (object-oriented) design method is fully supported.
It is lightweight and does not need to depend on J2EE application server like EJB.
Free the dependency management from the Java object and hand it over to the IOC container for Dependency inversion through the IOC container.
On the one hand, he manages pojo objects through IOC containers and their coupling relationships so that enterprise information resources can be abstracted and described in a simple Java language. On the other hand, you can use AOP to enhance service functions in a dynamic and non-intrusive manner.
Spring Design Philosophy-interface-oriented development without relying on specific product implementation.
Multiple methods to implement AOP, such as integrating the aspectj framework and the proxyfactory proxy factory mode. In the proxy factory implementation, both the JVM dynamic proxy implementation and, you can also implement cglib using a third-party proxy class library.
Overall architecture of 3spring
Divided into several layers:
IOC container, AOP core module, encapsulated Java EE service, intermediate driver component, and other upper-layer applications.
Spring architecture diagram:
Spring IoC: contains the beanfactory interface and Implementation of the most basic IOC container, and provides the implementation of some columns.
Spring AOP: Spring inherits aspectj as a specific implementation of AOP, and implements an AOP framework based on JVM dynamic proxy/cglib, as a tool for inheriting other modules from spring. In this module, Spring AOP implements a complete process of establishing an AOP proxy object to implement AOP interception until various advice notifications are implemented.
Spring MVC: With dispatcherservlet as the core, this module implements the MVC mode, including how to inherit from the Web Container environment, blocking, distributing, processing Web requests, and returning modelandview data, and how to integrate various UI views for presentation and data presentation.
Spring JDBC/spring ORM: encapsulates JDBC and provides RDBMS operation objects. It also provides templates and Other encapsulation for the existing ORM framework.
Spring transaction processing: Spring transaction processing is a typical module that enhances its functions through Spring AOP. In this module, spring abstracts the main process of transaction processing in enterprise development, and implements declarative transaction processing simply by enhancing the aspect of AOP.
Spring Remote Call: Spring shields applications from various communication and call details. You can use the HTTP caller (based on the HTTP protocol), use third-party binary communication to implement Hessian/burlap, and even encapsulate RMI calls in traditional Java technologies.
Spring applications: strictly speaking, they are not within the scope of spring. Enrich the entire spring ecosystem, making spring applications more and more extensive.
4spring application scenarios
Lightweight, simplified application development programming model, strong independence between modules.
Spring is a non-invasive framework designed to minimize the dependence of application code on the framework.
Spring provides a continuous programming model so that applications can be directly developed using pojo, which can be isolated from the runtime environment.
Spring promotes the transformation from an application design style to object-oriented and interface-oriented programming, improving code reusability and testability.
Spring improves the choice of architecture.