Class FXTimiInject

java.lang.Object
com.imyeyu.fx.inject.FXTimiInject

public final class FXTimiInject extends Object
JavaFX 与 TimiInject 集成支持

提供 JavaFX Application 和 Stage 对象到依赖注入容器的集成。 在 Application.start() 方法中调用 register(TimiInject, Application, Stage) 方法即可完成注册和注入。

使用示例:

public class Main extends Application {
    @Inject
    private SomeService service;

    @Override
    public void start(Stage stage) {
        TimiInject inject = FXTimiInject.run(Main.class, this, stage);
        // 现在 service 已经被注入,可以使用了
    }
}
Author:
夜雨
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    register(com.imyeyu.inject.TimiInject inject, javafx.application.Application app, javafx.stage.Stage stage)
    将 JavaFX Application 和 Stage 注册到容器,并对 Application 执行字段注入
    static com.imyeyu.inject.TimiInject
    run(Class<?> applicationClass, javafx.application.Application app, javafx.stage.Stage stage)
    启动容器并在初始化前注册 Application 和 Stage

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • run

      public static com.imyeyu.inject.TimiInject run(Class<?> applicationClass, javafx.application.Application app, javafx.stage.Stage stage)
      启动容器并在初始化前注册 Application 和 Stage
      Parameters:
      applicationClass - 启动类
      app - JavaFX Application 实例
      stage - JavaFX 主舞台(Primary Stage)
      Returns:
      TimiInject 容器实例
    • register

      public static void register(com.imyeyu.inject.TimiInject inject, javafx.application.Application app, javafx.stage.Stage stage)
      将 JavaFX Application 和 Stage 注册到容器,并对 Application 执行字段注入

      此方法会:

      1. 将 Application 对象以 "application" 为名称注册到容器
      2. 将 Stage 对象以 "stage" 和 "primaryStage" 为名称注册到容器
      3. 对 Application 对象执行字段注入,使其 @Inject 字段生效
      Parameters:
      inject - TimiInject 容器实例
      app - JavaFX Application 实例
      stage - JavaFX 主舞台(Primary Stage)