Injecting Atmosphere components and factories using the javax.inject.Inject - Atmosphere/atmosphere GitHub Wiki

Starting with Atmosphere 2.3+, the Inject and PostConstruct annotation are natively supported. You can inject AtmosphereConfig, AtmosphereFramework, AtmosphereFramework, BroadcasterFactory, AtmosphereResourceFactory, MetaBroadcaster and AtmosphereResourceSessionFactory

        @Inject
        private AtmosphereConfig config;

        @Inject
        private AtmosphereFramework f;

        @Inject
        private AtmosphereResourceFactory resourceFactory;

        @Inject
        private BroadcasterFactory bFactory;

        @Inject
        private MetaBroadcaster m;

        @Inject
        private AtmosphereResourceSessionFactory sessionFactory;

You can also use CDI(jsr 330), Guice or Spring as well.

Request Scoped Injection (2.4.0+)

Injecting Broadcaster

You can inject Broadcaster by using the @Named

    @Inject
    @Named("/chat")
    private Broadcaster broadcaster;

Injecting AtmosphereResource, AtmosphereRequest, AtmosphereResponse and AtmosphereResourceEvent:

As simple as:

    @Inject
    private AtmosphereResource resource;

Injecting your own objects

If you are using 2.3.2+, you can also defines under META-INF/services/org.atmosphere.inject.Injectableclasses that implements the Injectable or InjectIntrospector interface so the AtmosphereObjectFactory can inject those objects into your application. For example, Atmosphere uses this mechanism to allow injection of the classes listed above.

You can also take a look at the chat sample for a super simple example of custom injection using the META-INF/services/org.atmosphere.inject.Injectable file.