0

プロジェクトAppModuleでいくつか検討してください。Tapestry

システムの起動時に呼び出す必要がある一連のアクションを注文したいと考えています。

考えてみてください、私には2つの簡単なアクションがあります:

1) 最初に行わなければならないアクション:

@Startup
public static void initMyApplication(Logger logger, LiquibaseService liquibaseService) {
    logger.info("Updating database by liquibase service...");
    liquibaseService.update();
    logger.info("update-db done.");
}

2)および2番目のもの:

@Startup
@Order("after:LiquibaseService")
public static void doSomeChecks(HibernateSessionManager hsm) {
   ... 
}

理解できません (ドキュメントを読んでも):アノテーションを使用してそのようなアクションの順序を指定するにはどうすればよいですか?@Order

より具体的には、何を指摘する必要があり@Order("after:<HERE>)ますか?

次のような構造のようです。

@Order("after:LiquibaseService")

また

@Order("after:initMyApplication")

働かないでください。実際、私のstartupアクションは任意の順序で呼び出されます。

4

1 に答える 1

1

@Orderで使用できるとは思いません@Startupが、できることは を使用することですcontributeRegistryStartup。予想OrderedConfigurationどおり、投稿を注文できます。

public class MyModule1
{
  public static void contributeRegistryStartup(OrderedConfiguration<Runnable> configuration)
  {
    configuration.add("MyFirstContribution", new Runnable() { ... });
  }
}

public class MyModule2
{
  public static void contributeRegistryStartup(OrderedConfiguration<Runnable> configuration)
  {
    configuration.add("MySecondContribution", new Runnable() { ... }, "after:MyFirstContribution");
  }
}
于 2013-01-17T13:57:31.107 に答える