java - 如何管理不同模块之间的共享依赖关系?

标签 java guice

我有以下服务 注入(inject)的TopService 注入(inject)的 MidService 低服务

我想在一个 Maven 项目(我们称之为 ProjectA)中将 TopServiceLowServiceA 一起使用。 ProjectB 依赖于另一个使用 TopServiceLowServiceB 的 Maven 项目(称为 ProjectB)。

下面是我如何定义 ProjectA 的 Guice 模块:

ProjectAModule extends AbstractModule {

    @Override
    protected void configure() {
        install(new PrivateModule() {
        @Override
        protected void configure() {
            bind(TopService.class);
            bind(MidService.class);
            bind(LowService.class).toInstance(new LowServiceA());
        });
        install(new PrivateModule() {
        @Override
        protected void configure() {
            install(new ProjectBModule());
            bind(TopService.class);
            bind(MidService.class);
            bind(LowService.class).toInstance(new LowServiceB());
        });
    }
}

我只是想知道这是否是配置我的依赖项的最佳方法。我不喜欢这种方法的一件事是我每次都必须手动绑定(bind) TopServiceMidServiceLowService

最佳答案

只需制作 CommonsModule 和 ProjectAModule 和 ProjectBModule 并根据项目使用 2 个模块创建注入(inject)器。

CommonsModule 应包含

 bind(TopService.class);
 bind(MidService.class);

和 ProjectAModule/ProjectBModule

bind(LowService.class).toInstance(new LowServiceA());

bind(LowService.class).toInstance(new LowServiceB());

关于java - 如何管理不同模块之间的共享依赖关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38711411/

相关文章:

hibernate - 实体bean的Guice依赖注入(inject)?

java - 查找两个日期之间的差异

java - Tomcat 耗尽虚拟机内存

java - 从 java 为给定文件夹 x 级别创建 jstree 数据

java - 使用 iText 5 出现奇怪的显示问题

java - 如何使用自定义参数配置提供程序?

java - jetty guice 非法访问错误

java - Google Guice 中的计算常量

java - 我的系统 Windows 10 上的环境变量中的 java 路径应该是什么

scala - ( Play 2.4)特征中的依赖注入(inject)?