Posts

Integration framework

Spring Integration is a framework for Enterprise application integration that provides reusable functions that are essential in messaging, or event-driven architectures. routers - routes a message to a message channel based on conditions transformers - converts/transforms/changes the message payload and creates a new message with transformed payload adapters - to integrate with other technologies and systems (HTTP, AMQP, JMS, XMPP, SMTP, IMAP, FTP (as well as FTPS/SFTP), file systems, etc.) filters - filters message based on criteria. if criteria is not met, message is dropped service activators - invoke an operation on a service object management and auditing Spring Integration supports pipe-and-filter based architectures.

Batch framework

Spring Batch is a framework for batch processing that provides reusable functions that are essential in processing large volumes of records, including: logging/tracing transaction management job processing statistics job restart It also provides more advanced technical services and features that will enable extremely high-volume and high performance batch jobs through optimizations and partitioning techniques. Spring Batch is a framework for batch processing – execution of a series of jobs. In Spring Batch, A job consists of many steps and each step consists of a READ-PROCESS-WRITE task or single operation task (tasklet). For "READ-PROCESS-WRITE" process, it means "read" data from the resources (csv, xml or database), "process" it and "write" it to other resources (csv, xml and database). For example, a step may read data from a CSV file, process it and write it into the database. Spring Batch provides many made Classes to read/w

Convention-over-configuration rapid application development

Spring Boot is Spring's convention-over-configuration solution for creating stand-alone, production-grade Spring based Applications that you can "just run". It takes an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration. Create stand-alone Spring applications Embed Tomcat or Jetty directly (no need to deploy WAR files) Provide opinionated 'starter' POMs to simplify your Maven configuration Automatically configure Spring whenever possible Provide production-ready features such as metrics, health checks and externalized configuration Absolutely no code generation and no requirement for XML configuration Spring Roo provides an alternative, code-generation based approach at using convention-over-configuration to rapidly build applications in Java. It currently supports Spring Framework, Spring Security and Spring Web Flow. Roo dif

Remote access framework

Spring's Remote Access framework is an abstraction for working with various RPC-based technologies available on the Java platform both for client connectivity and marshalling objects on servers. The most important feature offered by this framework is to ease configuration and usage of these technologies as much as possible by combining inversion of control and AOP.The framework also provides fault-recovery (automatic reconnection after connection failure) and some optimizations for client-side use of EJB remote stateless session beans . Spring provides support for these protocols and products out of the box HTTP-based protocols Hessian: binary serialization protocol, open-sourced and maintained by CORBA-based protocols RMI (1): method invocations using RMI infrastructure yet specific to Spring RMI (2): method invocations using RMI interfaces complying with regular RMI usage RMI-IIOP (CORBA): method invocations using RMI-IIOP/CORBA Enterprise JavaBean client integra

MVC framework

The Spring Framework features its own MVC web application framework, which wasn't originally planned. The Spring developers decided to write their own Web framework as a reaction to what they perceived as the poor design of the (then) popular Jakarta Struts Web framework, as well as deficiencies in other available frameworks. In particular, they felt there was insufficient separation between the presentation and request handling layers, and between the request handling layer and the model.Like Struts, Spring MVC is a request-based framework. The framework defines strategy interfaces for all of the responsibilities that must be handled by a modern request-based framework. The goal of each interface is to be simple and clear so that it's easy for Spring MVC users to write their own implementations, if they so choose. MVC paves the way for cleaner front end code. All interfaces are tightly coupled to the Servlet API. This tight coupling to the Servlet API is seen by

Transaction management framework

Spring's transaction management framework brings an abstraction mechanism to the Java platform. Its abstraction is capable of: working with local and global transactions (local transaction does not require an application server) working with nested transactions working with savepoints working in almost all environments of the Java platform In comparison, JTA only supports nested transactions and global transactions, and requires an application server (and in some cases also deployment of applications in an application server). The Spring Framework ships a PlatformTransactionManager for a number of transaction management strategies: Transactions managed on a JDBC Connection Transactions managed on Object-relational mapping Units of Work Transactions managed via the JTA TransactionManager and UserTransaction Transactions managed on other resources, like object databases Next to this abstraction mechanism the framework also provides two ways of adding transaction man

Data access framework

Spring's data access framework addresses common difficulties developers face when working with databases in applications. Support is provided for all popular data access frameworks in Java: JDBC, iBatis/MyBatis, Hibernate, JDO, JPA, Oracle TopLink, Apache OJB, and Apache Cayenne, among others.For all of these supported frameworks, Spring provides these features Resource management - automatically acquiring and releasing database resources Exception handling - translating data access related exception to a Spring data access hierarchy Transaction participation - transparent participation in ongoing transactions Resource unwrapping - retrieving database objects from connection pool wrappers Abstraction for BLOB and CLOB handling All these features become available when using template classes provided by Spring for each supported framework. Critics have said these template classes are intrusive and offer no advantage over using (for example) the Hibernate API directly.