Я ищу простое для использования контейнера МОК для приложений GUI, записанных в Java/Scala.
Это должно поддерживать Конвенцию по Конфигурации, управлению жизненным циклом, конфигурации в коде (предпочтительно без любого XML, необходимого вообще), и зависимости от проверки во время компиляции как можно больше. Что-то подобное Autofac было бы прекрасно.
Похоже, вам нужно что-то вроде Google Guice.
Раньше было довольно много IoC-контейнеров для Java (например, PicoContainer), но все они уже много лет находятся в тени Spring. Однако Spring, скорее всего, немного переборчив для ваших нужд.
Guice возобновил здоровую конкуренцию.
Google Guice довольно хорош:
http://code.google.com/p/google-guice/
У вас также нет никакого XML мусора, вы можете просто создать модуль программно и писать вещи вместе в нем, например, связывая интерфейс (TransactionLog) с классом реализации (DatabaseTransactionLog):
public class BillingModule extends AbstractModule {
@Override
protected void configure() {
bind(TransactionLog.class).to(DatabaseTransactionLog.class);
}
}
PicoContainer - это полностью встраиваемый контейнер инверсии управления (IoC) с полным спектром услуг для компонентов, соблюдающих шаблон внедрения зависимостей. Проект стартовал в 2003 году и впервые использовался для автоматического подключения Constructor Injection. Это также открытый исходный код и, следовательно, бесплатное использование. Лицензия - BSD, поэтому вы можете безопасно использовать ее с коммерческим или другим программным обеспечением с открытым исходным кодом.