2013-01-30 2 views
0

интересно, это любой удобный и целесообразный способ описать Tapestry5 в AppModule некоторых действия, которые должны быть вызваны перед темbind() метода будут работать?Выполнение некоторых действий до привязки методы()

Конечно, можно включить такие действия внутри метода bind() в верхней части блока метода. Но, похоже, для этого должна быть какая-то другая возможность.

BTW, @Startup не подходит для этого, потому что в моем случае он использует уже запущенные службы, но мне нужно выполнить некоторые действия, прежде чем службы будут связаны.

+0

Возможно, вы можете использовать методы построения сервиса? (http://tapestry.apache.org/tapestry-ioc-modules.html) –

+0

Может быть, вам не нужно? Можно ли поделиться тем, что именно вы пытаетесь сделать? –

+0

Думаю, мне нужно. Извините, но позвольте мне решить, какую архитектуру я хочу от себя. – Andremoniy

ответ

1

За пределами ответа Тавуса; Нет, вы ничего не можете сделать, за исключением статического блока кода (который является стандартной Java, а не Гобелен).

+0

Спасибо за ваш ответ, Говард! – Andremoniy

0

Если это веб-приложение для гобеленов, вы можете расширить TapestryFilter и провести там этап инициализации. Посмотрите на исходный код TapestryFilter для вдохновения. Также см. TapestryAppInitializer

+0

Спасибо, но это не так, что я действительно прошу. Интересно, как сделать это правильно внутри 'AppModule' ... – Andremoniy

1

Иногда я обнаружил, что использую неназванный статический блок в классе модуля - в основном для инициализации устаревших сервисов, от которых зависят мои службы Гобелена. Что-то вроде:

public final class MyModule { 

    static { 
     // early set-up here 
    } 

    public static void bind(ServiceBinder binder) { 
     // binding here 
    } 
} 

Это, кажется, чтобы улучшить модуль читаемость кода немного, но в то же время может быть довольно трудно установить для модульного тестирования.

Смежные вопросы