当代码使用构建器模式时,如何有条件地配置@Bean?

时间:2016-07-13 19:26:41

标签: java spring design-patterns retrofit

我正在使用Retrofit库进行客户端调用。在某些环境中,我想以某种方式加密某些我的流量。在其他环境中,我没有。通常我会使用属性配置或Spring配置文件来执行此操作,但此代码如下所示:

        //This is an @Bean method
        new RestAdapter.Builder()
        .setConverter(new JacksonConverter(this.jacksonObjectMapper))
        .setErrorHandler(new RetrofitErrorHandler())
        .setLog(new RetrofitLogback())
        .setLogLevel(logLevel)
        .setEndpoint(host)
        .setClient(sslClient()) //sometimes do this, sometimes don't do this
        .setLogLevel(RestAdapter.LogLevel.FULL)
        .build()

我们的代码中有许多地方有条件地需要sslClient(),有些地方永远不应该使用sslClient。 Spring有没有办法方便地配置它?

最天真的方法是找到所有这些改进设置并将其中一些包装在if语句中。但也许有一种更清晰的方法可以重构与Spring无关的代码。

0 个答案:

没有答案