使用Dropwizard(2)-配置分类ConfiguredBundle

前言

不可避免的要用dropwizard作为service框架。持续学习。上次在dropwizard中使用feign,使用hystrix, 算是基本入门了。接下来就是基于此的优化。

把需要使用Configuration的逻辑从Application里分离出来

在开始的demo中,由于不知道dropwizard怎么传播类,怎么注入, 把所有的初始化的东西都放到Application里去new出来。现在发现有办法可以分离部分配置逻辑。

现在把feign的基础配置抽离出来:

public class ConnectivityBundle implements ConfiguredBundle<HelloWorldConfiguration> {
    @Override
    public void run(HelloWorldConfiguration configuration, Environment environment) throws Exception {
        //init hystrix config
        Map<String, Object> hystrixConfig = configuration.getHystrixConfig();
        for (final Map.Entry<String, Object> config : hystrixConfig.entrySet()) {
            ConfigurationManager.getConfigInstance().setProperty(config.getKey(), config.getValue());
            System.out.println(config.getKey());
        }
    }

    @Override
    public void initialize(Bootstrap<?> bootstrap) {

    }
}

然后,在Application中添加就好了。 com.test.HelloWorldApplication

@Override
public void initialize(Bootstrap<HelloWorldConfiguration> bootstrap) {
    bootstrap.addBundle(new ConnectivityBundle());
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

十分钟带你了解 Python3 多线程核心知识

每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 每个线程都有他自...

2565
来自专栏企鹅号快讯

用 Python 处理 HTML 转义字符的5种方式

Photo byAhmed SaffuonUnsplash 写爬虫是一个发送请求,提取数据,清洗数据,存储数据的过程。在这个过程中,不同的数据源返回的数据格式各...

3589
来自专栏北京马哥教育

Python多进程编程

阅读目录 1. Process 2. Lock 3. Semaphore 4. Event 5. Queue 6. Pipe 7. Pool 序. multi...

3875
来自专栏JavaQ

高并发编程-Condition深入解析

Condition接口位于java.util.concurrent.locks包下,实现类有 AbstractQueuedLongSynchronizer.Co...

854
来自专栏SnailTyan

Python的命令行参数解析

命令行参数解析在编程语言中基本都会碰到,Python中内置了一个用于命令项选项与参数解析的模块argparse。下面主要介绍两种解析Python命令行参数的方式...

2520
来自专栏TechBox

【iOS】运行时消息传递与转发机制前言(一)对象的消息传递机制 objc_msgSend()(二)消息转发流程参考文章

1164
来自专栏Android中高级开发

Android并发编程 多线程与锁

该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,如果能给各位看官带来一丝启发或者帮助,那真是极好的。

1502
来自专栏JavaEdge

类加载器与双亲委派模型1 类加载器 2 双亲委派模型

类加载器(ClassLoader)是Java语言的一项创新,也是Java流行的一个重要原因。 在类加载的第一阶段“加载”过程中,需要通过一个类的全限定名来获取...

1142
来自专栏Java技术栈

JDK9新特性实战:简化流关闭新姿势。

做Java开发的都知道,每个资源的打开都需要对应的关闭操作,不然就会使资源一直占用而造成资源浪费,从而降低系统性能。 关于资源的关闭操作,从JDK7-JDK9有...

3508
来自专栏CaiRui

Shell-3-文件之名

1.生成任意大小的文件 [root@localhost tmp]# dd if=/dev/zero of=junk.data bs=1M count=1 记录了...

1979

扫码关注云+社区