Play2.5 scala 学习记录

来源:互联网 发布:用友软件操作流程 编辑:程序博客网 时间:2024/06/07 04:11

    由于play2.5中已经全面使用依赖注入,面向接口,所以在play2.5 中使用 guice的模式与play2.3中已经有很大不同。

Guice 与Spring 注入的一个很大不同就是Guice 需要手动绑定接口与实现的关系,而spring大多可以通过使用注解来自动注入,从而在工程中随意使用,而guice则不同,创建了guice 的module后,需要createInjector,通过这个Injector来获取绑定接口的实例,那么问题就来了,如何在一个工程使用一个Injector 来加载所有的Module,在工程中的所有地方都能使用?

     a.play2.3中,一般都是通过定义一个接口,相关的类来实现这个接口方法,再递归循环找到所有类,再创建一个Injector 保存在 一个静态类中,从而达到随取随用的目的。

    b. play2.5中,默认状态下 在包的根目录下 会有一个Module类,在这个类的configure 方法中 可以手动绑定每个接口与实现类的关系。程序的启动的时候 会加载这个类,使用Play.current.injector 来加载所有的绑定关系。从而在工程的任意地方随取随用。如果有子工程,可以定义一个类用来加载绑定关系,然后 在application.conf中通过配置 play.module.enable +=   来启用这个类,加载绑定关系。但是需要注意: 不能在其他模块及父模块中添加 该模块相关类的绑定关系,否则会出错。 而在eclipse中 如果在其他模块 使用该模块的类,eclipse 会报错找不到相关类,但是编译运行都会正常。

0 0
原创粉丝点击