Spring

NuGet Package: NServiceBus.Spring (6.x)
Target Version: NServiceBus 5.x
Standard support for version 5.x of NServiceBus has expired. For more information see our Support Policy.

Starting with NServiceBus version 7, the dependency injection container adapter packages are no longer required. NServiceBus directly supports the Microsoft.Extensions.DependencyInjection model and third party containers can be integrated using the NServiceBus.Extensions.DependencyInjection package or via the .NET Generic Host.

In NServiceBus version 8, NServiceBus will no longer provide adapters for external dependency injection containers.

Visit the dependency injection upgrade guide for further information.

NServiceBus can be configured to use Spring for dependency injection.

Default usage

busConfiguration.UseContainer<SpringBuilder>();

Using an existing context

var applicationContext = new GenericApplicationContext();
applicationContext.ObjectFactory
    .RegisterSingleton("MyService", new MyService());
busConfiguration.UseContainer<SpringBuilder>(
    customizations: customizations =>
    {
        customizations.ExistingApplicationContext(applicationContext);
    });

DependencyLifecycle Mapping

The NServiceBus dependency lifecycle modes do not map directly to Spring object scopes. Almost all of the lifecycle modes have been implemented using custom type registrations using a Spring GenericApplicationContext.

Property Injection

This dependency injection container adapter automatically enables property injection for known types. Use the Func overload of .ConfigureComponent to get full control over the injected properties if needed.

Samples


Last modified