[preface]
[[preface]]
= Preface

[[preface.overview]]
== Overview

Spring Modulith is an opinionated toolkit to build domain-driven, modular applications with Spring Boot.
In the same way that Spring Boot has an opinion on the technical arrangement of an application, Spring Modulith implements an opinion on how to structure an app functionally and allows its individual, logical parts to interact with each other.
As a result, Spring Modulith enables developers to build applications that are easier to update so they can accommodate changing business requirements over time.

[[preface.project-metadata]]
== Project Metadata

* Version control https://github.com/spring-projects/spring-modulith
* Bug tracker: https://github.com/spring-projects/spring-modulith
* Release repository: Maven central
* Milestone repository: https://repo.spring.io/milestone
* Snapshot repository: https://repo.spring.io/snapshot
* Javadoc: https://docs.spring.io/spring-modulith/docs/{projectVersion}/api

== Using Spring Modulith

Spring Modulith consists of a set of libraries that can be used individually and depending on which features of it you would like to use.
To ease the declaration of the individual modules, we recommend to declare the following BOM in your Maven POM:

.Using the Spring Modulith  BOM
[source, xml, subs="+attributes"]
----
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.modulith</groupId>
      <artifactId>spring-modulith-bom</artifactId>
      <version>{projectVersion}</version>
      <scope>import</scope>
      <type>pom</type>
    </dependency>
  </dependencies>
</dependencyManagement>
----

The individual sections describing Spring Modulith features will refer to the individual artifacts that are needed to make use of the feature.
For an overview about all modules available, have a look at <<appendix.artifacts>>.

== Examples

If you would like to play with the features of the project and see them live in action, check out the examples https://github.com/spring-projects/spring-modulith/tree/{projectVersion}/spring-modulith-examples[here]
