当前位置: 首页 > 知识库问答 >
问题:

在Dropwizard应用程序中注入Guice AbstractModule中的配置

高运诚
2023-03-14

我正在使用Guice和Dropwizard开发一个应用程序,在其中我们创建了不同的包,如Guice包、migrations包等,并将它们添加到initialize()方法中的bootstrap中。

public class MyApplication extends Application<MyConfiguration> {

    public static void main(String args[]) throws Exception {
        new MyApplication().run(args);
    }

    private GuiceBundle<MyConfiguration> guiceBundle = GuiceBundle.<MyConfiguration> newBuilder()
        .addModule(new MyModule()).enableAutoConfig(getClass().getPackage().getName())
        .setConfigClass(MyConfiguration.class).build(Stage.DEVELOPMENT);

    @Override
    public void initialize(Bootstrap<MyConfiguration> bootstrap) {
        bootstrap.addBundle(guiceBundle);
    }

    @Override
    public void run(MyConfiguration configuration, Environment environment) throws Exception {
        ...
    }
}
public class MyModule extends AbstractModule {

    @Override
    protected void configure() {

    }
}

注意:我知道另一种方法,您可以在run()方法中创建Module类的对象,用于创建注入器(配置和环境对象在MyModule类的构造函数中作为参数传递)。但这需要我在run()方法中注册所有托管对象和所有资源。我想避免那样做。

共有1个答案

柴琨
2023-03-14

Guice模块是存储配置的类,在创建注入器时进行解析。不能显式地在模块中注入对象。

如果不查看Guicebundle的内部,我想我无法告诉您更多。

 类似资料:
  • 我有两个像这样的jdbi刀: 我想在一个事务中执行两个道的保存,例如: 在Spring中,我使用了@transactional注释。我可以使用dropwizard和jdbi做什么?

  • 所以我的问题是。我的Spring Boot应用程序使用Hibernate/JPA和ehCache进行二级缓存。我想用Dropwizard/Coda-Hale指标来检测ehCache,但我不确定如何去做。如果我手动创建缓存实例,那就简单了。您只需使用如下所示的装饰器。但是因为是Spring/Hibernate,我无法控制缓存。你知道我该怎么设置这个吗?

  • 我正在基于Dropwizard v0.9.1构建一个web堆栈。堆栈中的所有日志都通过AppenderFactory接口的自定义实现发送到Loggly: 此类未在我的应用程序类中的环境中注册。相反,它似乎是Dropwizard基于@JsonTypeName注释自动连接的。尽管如此,和字段由出现在我的配置yaml文件中的值填充: 问题是,这些配置值不会出现在应用程序的配置类中,这意味着在构建其他资源

  • 我们在dropwizard应用程序中有一个配置类: 我需要通过读取yaml文件在单元测试中创建真正的配置对象。有什么指针会有用吗? 看起来像是当dropwizard应用程序启动时,应用程序将读取yaml配置文件并创建MyConfiguration,但是在运行简单的单元测试时,我想要一个真实的(不是模拟的)配置对象。 谢谢你。

  • 在我的dropwizard rest应用程序中,我的指标配置是这样的,(hello-world.yml) 这是一个SLF4J记者,我把它放在了我的YAML配置文件中。当我想获取这个值并在我的应用程序文件中使用它时。我看到的唯一选择是将此作为< code >地图阅读 此问题与graphite服务器配置的Dropwizard Yaml相同。但是这个问题还是没有答案,所以我创造了一个新问题来试试运气。

  • 阅读HikariCP维基上有关如何启用拖放向导指标的说明,它说只需在或中配置一个实例。 问题是,在Spring Boot,所有的配置都是由自动配置处理的,所以我根本不用手动配置HikariCP池。 有关于如何做的说明吗?我是否必须通过定义自己的bean并在文件中设置所有设置来完全覆盖自动配置?