The DSpace Services Framework provides the infrastructure of a more componentized realization of DSpace. Services, plugins, and providers are registered with the framework so that they can find each other without having to know each other too intimately. This should make it easier to maintain, extend, and understand DSpace as it evolves.

The framework consists of:

kernel
  initializes and starts the framework, grants ready access to core services
service manager
  instantiates, configures, and controls services
core services
  configuration, events, and the like
utilities
  includes the DSpace object, a starting point in using the framework

To use the Services Framework, start by creating a running kernel instance.

- In a standalone application, you can call {@link org.dspace.servicemanager.DSpaceKernelInit#getKernel} to get a reference to one.
- In a Spring container, you need to ensure that {@code spring/spring-dspace-applicationContext.xml} and {@code spring/spring-dspace-core-services.xml} are loaded. Then you can wire references to
  - {@code org.dspace.services.CachingService}
  - {@code org.dspace.services.SessionService}
  - {@code org.dspace.services.RequestService}
  - {@code org.dspace.services.EventService}
  into your beans as needed.
- In a servlet container, you should configure a {@link org.dspace.servicemanager.servlet.DSpaceKernelServletContextListener context listener} to instantiate the kernel and a {@link org.dspace.utils.servlet.DSpaceWebappServletFilter filter} to establish the connection between the web application and the framework.

@see DSpace Services Framework