Annotation Interface Modulithic


@Documented @Target(TYPE) @Retention(RUNTIME) public @interface Modulithic
Defines a Spring Boot application to follow the Modulith structuring conventions.
Author:
Oliver Drotbohm
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Defines which additional packages shall be considered as modulith base packages in addition to the one of the class carrying this annotation.
    The names of modules considered to be shared, i.e. which should always be included in the bootstrap, no matter what.
    A logical system name for documentation purposes.
    boolean
    Whether to use fully qualified module names by default.
  • Element Details

    • systemName

      String systemName
      A logical system name for documentation purposes.
      Returns:
      Default:
      ""
    • useFullyQualifiedModuleNames

      boolean useFullyQualifiedModuleNames
      Whether to use fully qualified module names by default. If set to true, hits will cause the module's default names to be their complete package name instead of just the modulith-local one. This might be useful in case additionalPackages() pulls in packages that would cause module name conflicts, i.e. both root packages declare a local sub-package of the same name.
      Returns:
      Default:
      false
    • sharedModules

      String[] sharedModules
      The names of modules considered to be shared, i.e. which should always be included in the bootstrap, no matter what. Useful for code to contain global Spring configuration and components.
      Returns:
      Default:
      {}
    • additionalPackages

      String[] additionalPackages
      Defines which additional packages shall be considered as modulith base packages in addition to the one of the class carrying this annotation.
      Returns:
      Default:
      {}