gluon
依赖注入抽象框架Gluon Ignite在几个流行的依赖注入框架(例如Spring,Dagger和Guice)上创建了一个通用抽象。
目前,Gluon 页面仅包含一个示例,该示例使用Gluon Ignite和Google Guice作为依赖注入框架,我想尝试使用Dagger代替它,因为它的目标是比其他依赖注入框架更简约和更快,这对于功能较弱的功能来说非常有趣移动和嵌入式等设备。 除此之外,它是Google Guice的开发人员发明的,但是使用注入方法的方式较少。
在第一步中,您必须将dagger依赖项添加到您的maven pom(或gradle构建文件)中:
之后,执行mvn clean并安装或右键单击并选择:“ reload pom”和“ clean and build”。 现在,您可以通过创建一个新字段开始将其集成到JavaFX主应用程序中:
DaggerContext类带有先前添加的maven依赖项形式。 它的实例化将JavaFX Main类(this)作为第一个参数,将DaggerModule作为第二个参数。 必须手动创建此模块:
创建DaggerModules时,必须使用@Module注释对Module类进行注释,并且还必须注入JavaFX Main类(在本示例中为MainApp.class)。
如果还想注入FXMLLoader对象,则必须创建一个带有@Provices注释的方法,该方法返回FXMLLoader实例。
在注入其他对象的情况下,有两种注入方法。 您可以向dagger模块添加其他提供方法,例如:
或者,您可以在SampleController类中创建一个标准的无参数构造函数,该构造函数以@Inject进行注释,例如:
如果您不执行此步骤之一,则JavaFX Main类不会编译,因为Dagger使用生成的代码来注入相应的类,而不是像其他Dependency Frameworks那样大量使用反射。
链接和进一步阅读
- http://gluonhq.com/open-source/ignite/
- http://square.github.io/dagger/
- https://www.youtube.com/watch?v=hBVJbzAagfs
Gluon Ignite提供了一种非常好的方法,可以在JavaFX应用程序中集成不同的Dependency Framework。 除此之外,使用Gluon Ignite更改相应的DI真的很容易。 试试看!
翻译自: https://www.javacodegeeks.com/2016/01/dependency-injection-javafx-gluon-ignite-dagger.html
gluon