当前位置: 首页 > 面试题库 >

春季:使用构建器模式创建Bean

邢宏浚
2023-03-14
问题内容

我使用ektorp连接到CouchDB。

构建ektorp HttpClient实例的方法是使用构建器模式

HttpClient httpClient = new StdHttpClient.Builder()
                                .host("mychouchdbhost")
                                .port(4455)
                                .build();

我对Spring比较陌生。请为我提供有关如何HttpClient在上下文中配置以便通过进行创建的建议Builder

一种方法是使用@Configuration。还有其他选择吗?


问题答案:

您可以尝试实现FactoryBean接口:

public class HttpFactoryBean implements FactoryBean<HttpClient>{

private String host;
private int port;


public HttpClient getObject() throws Exception {
    return new StdHttpClient.Builder()
                            .host(host)
                            .port(port)
                            .build();
}

public Class<? extends HttpClient> getObjectType() {
    return StdHttpClient.class;
}

public boolean isSingleton() {
    return true;
}

public void setHost(String host) {
    this.host = host;
}

public void setPort(int port) {
    this.port = port;
}}

并添加到配置以下bean定义:

<beans ..."> 
   <bean name="myHttpClient" class="HttpFactoryBean">
       <property name="port" value="8080"/>
       <property name="host" value="localhost"/>
   </bean>
</beans>

然后,您可以将此bean注入另一个bean,它将作为StdHttpClient实例进行解析。



 类似资料:
  • 问题内容: 使用Spring 3,我想使用 ExceptionHandler 注释创建一个异常处理程序,该 异常 处理程序将处理 “找不到页面(404)” 请求。我正在使用以下代码来执行此操作。但是,当我指向一个不存在的URL时,将调用Spring定义的默认异常处理程序。 可能是我正在处理 NoSuchRequestHandlingMethodException 异常。如果是,那我应该注册什么例外

  • 我需要在没有静态嵌套类的情况下实现Builder模式。如果我有遗传,最好的方法是什么?让我们想象一下我有下面的课。 是创建一个Builder类来负责设置PassengerCar和Truck的值更好,还是我们需要另外三个类,CarBuilder,PassengerCarBuilder extends CarBuilder和TruckBuilder extends CarBuilder?

  • 问题内容: 什么是一些 常见的 , 现实世界的例子 使用Builder模式的?它能买到什么?为什么不只使用工厂模式? 问题答案: 构建器和工厂恕我直言之间的主要区别在于,当您需要做很多事情来构建对象时,构建器非常有用。例如,想象一个DOM。您必须创建大量节点和属性才能获得最终对象。当工厂可以在一个方法调用中轻松创建整个对象时,将使用工厂。 使用构建器的一个示例是构建XML文档,例如在构建HTML片

  • 问题内容: 我在Spring Boot应用程序中使用一种应该异步运行的方法来做一个类。当我阅读方法时,应该加上注释,而且我还必须运行一个bean。但是在Spring手册http://docs.spring.io/spring/docs/current/spring- framework- reference/html/scheduling.html中, 我找不到任何信息或示例如何在没有XML配置的

  • 我是scala新手,尝试从元素数组中创建自定义模式,以读取基于新自定义模式的文件。 我正在从json文件中读取数组,并使用爆炸方法为列数组中的每个元素创建了一个数据框。 获得的输出为: 现在,对于上面列出的所有值,我尝试使用下面的代码动态创建val模式 上面的问题是,我能够在struct中获取数据类型,但我也希望仅为数据类型decimal获取(scale和preicion),其限制条件为max a