Skip to content
Ruedi Steinmann edited this page Apr 25, 2015 · 8 revisions

Welcome to the salta wiki. Use the sidebar on the right. If you're not sure what to look at, why not start with Why Dependency Injection?

Motivation

While developing a full stack web framework, we were looking for a dependency injection framework allowing for a quick application restart, even for large applications.

This ruled out JavaEE CDI since the set of available beans (the counterpart of bindings in Guice) is determined when the container is initialized and cannot be changed afterwards. This implies that the available classes are scanned during startup, which results in slow startup for large applications.

In Guice, the bindings can be created while the container is running (JIT bindings). However there is no way to add a standard dependency (annotated with @Inject) to an injection point specific instance. (As it would for example be necessary to nicely integrate slf4j loggers). Also, the JIT binding rules are fixed and the framework already brings two sets of annotations to the classpath (com.google.inject.* and javax.inject.*)

Spring is known to be very slow.

For these reasons, we started the Salta project.

Clone this wiki locally