Примеры вариантов использования внедрения зависимостей с платформой Play

Я большой поклонник Dependency Injection и Play Framework, но мне трудно понять, как их можно использовать вместе.

Есть модули для Spring и Guice, но из-за того, как работает Play, мне сложно понять, как DI может быть полезен за пределами некоторых довольно простых случаев.

Хорошим примером этого является то, что Play ожидает, что работа JPA будет выполняться статическими методами, связанными с рассматриваемым объектом:

@Entity
Person extends Model {
    public static void delete(long id) {
        em().find(id).remove();
    }

    //etc
}

Таким образом, нет необходимости вводить PersonManager в контроллеры в так, как это могло бы быть для приложения Spring J2EE. Вместо этого контроллер просто вызывает Person.delete (x) .

Очевидно, что DI полезен, когда есть интерфейсы с внешними системами, поскольку конкретная реализация может быть смоделирована для тестирования и т. Д., Но я не Не вижу большой пользы для автономного приложения Play.

Есть ли у кого-нибудь хорошие примеры? Кто-нибудь использует его для внедрения класса в стиле Manager в Controller , чтобы в одной транзакции можно было выполнять ряд операций, например?

11
задан ripper234 21 November 2011 в 16:27
поделиться