Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Mastering Spring 5.0

You're reading from   Mastering Spring 5.0 Master reactive programming, microservices, Cloud Native applications, and more

Arrow left icon
Product type Paperback
Published in Jun 2017
Publisher Packt
ISBN-13 9781787123175
Length 496 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
In28Minutes Official In28Minutes Official
Author Profile Icon In28Minutes Official
In28Minutes Official
Arrow right icon
View More author details
Toc

Table of Contents (14) Chapters Close

Preface 1. Evolution to Spring Framework 5.0 FREE CHAPTER 2. Dependency Injection 3. Building a Web Application with Spring MVC 4. Evolution toward Microservices and Cloud-Native Applications 5. Building Microservices with Spring Boot 6. Extending Microservices 7. Advanced Spring Boot Features 8. Spring Data 9. Spring Cloud 10. Spring Cloud Data Flow 11. Reactive Programming 12. Spring Best Practices 13. Working with Kotlin in Spring

Spring modules

The modularity of Spring Framework is one of the most important reasons for its widespread used. Spring Framework is highly modular with more than 20 different modules--having clearly defined boundaries.

The following figure shows different Spring modules--organized by the layer of application they are typically used in:

We will start with discussing the Spring Core Container before moving on to other modules grouped by the application layer they are typically used in.

Spring Core Container

Spring Core Container provides the core features of Spring Framework--dependency injection, IoC (Inversion of Control) container, and the application context. We will learn more about DI and IoC Container in Chapter 2, Dependency Injection.

Important core Spring modules are listed in the following table:

Module/Artifact Use
spring-core Utilities used by other Spring modules.
spring-beans Support for Spring beans. In combination with spring-core provides the core feature of Spring Framework--dependency injection. Includes implementation of BeanFactory.
spring-context Implements ApplicationContext, which extends BeanFactory and provides support to load resources and internationalization, among others.
spring-expression Extends EL (Expression Language from JSP) and provides a language for bean property (including arrays and collections) access and manipulations.

Cross-cutting concerns

Cross-cutting concerns are applicable to all application layers--logging and security, among others. AOP is typically used to implement cross-cutting concerns.

Unit tests and integration tests fit this category since they are applicable to all layers.

Important Spring modules related to cross-cutting concerns are listed as follows:

Module/Artifact Use
spring-aop Provides basic support for Aspect-Oriented Programming--with method interceptors and pointcuts.
spring-aspects Provides integration with the most popular and fully featured AOP framework, AspectJ.
spring-instrument Provides basic instrumentation support.
spring-test Provides basic support for unit testing and integration testing.

Web

Spring provides its own MVC framework, Spring MVC, other than providing great integration with popular web frameworks such as Struts.

Important artifacts/modules are listed as follows:

  • spring-web: Provides basic web features, such as multi-part file upload. Provides support for integration with other web frameworks, such as Struts.
  • spring-webmvc: Provides a fully featured web MVC framework--Spring MVC, which includes features to implement REST services as well.

We will cover Spring MVC and develop web applicaitions and rest services with it in Chapter 3, Building Web Application with Spring MVC and Chapter 5, Building Microservices with Spring Boot.

Business

The business layer is focused on executing the business logic of the applications. With Spring, business logic is typically implemented in Plain Old Java Object (POJO).

Spring Transactions (spring-tx) provides declarative transaction management for POJO and other classes.

Data

The data layer in applications typically talks to the database and/or the external interfaces.
Some of the important Spring modules related to the data layer are listed in the following table:

Module/Artifact Use
spring-jdbc Provides abstraction around JDBC to avoid boilerplate code.
spring-orm Provides integration with ORM frameworks and specifications-- JPA and Hibernate, among others.
spring-oxm Provides an object to XML mapping integration. Supports frameworks such as JAXB, Castor, and so on.
spring-jms Provides abstraction around JMS to avoid boilerplate code.
You have been reading a chapter from
Mastering Spring 5.0
Published in: Jun 2017
Publisher: Packt
ISBN-13: 9781787123175
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime