Creating an AcrossModule
Creating a new Across module is done by extending AcrossModule
and providing a valid name and description.
An AcrossModule
is in essence a configuration class.
It uniquely identifies the module and holds all configuration parameters required to bootstrap the module.
It also allows you to alter settings of how beans should be shared with other modules.
A module name should be unique and as a best practice also be available as a public static final NAME field on the AcrossModule
implementation.
public class ValidModule extends AcrossModule
{
public static final String NAME = "ValidModule";
@Override
public String getName() {
return NAME;
}
@Override
public String getDescription() {
return "ValidModule exposes some valid beans.";
}
}
For an Across module to be autoconfigurable it must adhere to the following conventions:
-
the module name must be available in the public static final NAME field
-
the module must have public constructor without any parameters
Upon bootstrap a module will create its own ApplicationContext
with the AcrossContext
as parent.
The beans created in the module ApplicationContext
are configured using ApplicationContextConfigurer
instances.
By default a scan for @Configuration
classes will happen on the config package below the package of the AcrossModule
implementation.
If you want more explicit control, you can override the registerDefaultApplicationContextConfigurers()
method.
Most modules will also define one or more resources in a location determined on the resources key of the module.
By default the resources key or a module is the same as the module name.
You can change this by overriding the getResourcesKey()
method.