java-如何使用不带XML的Spring启动H2 WebServer?

我目前正在使用所有Spring配置作为注释,我想将以下内容转换为注释:

<bean id="h2Server" class="org.h2.tools.Server" factory-method="createTcpServer" init-method="start" destroy-method="stop" depends-on="h2WebServer">
    <constructor-arg value="-tcp,-tcpAllowOthers,-tcpPort,9092"/>
</bean>
<bean id="h2WebServer" class="org.h2.tools.Server" factory-method="createWebServer" init-method="start" destroy-method="stop">
    <constructor-arg value="-web,-webAllowOthers,-webPort,8082"/>
</bean>

使用上面的配置可以完美地工作,但是由于我没有使用XML进行其他配置,因此我也希望对其进行更改.

谁能帮我解决这个问题?

编辑:使用提供的答案,这是最终结果:

@Bean(name = "h2WebServer", initMethod="start", destroyMethod="stop")
public org.h2.tools.Server h2WebServer() throws SQLException {
    return org.h2.tools.Server.createWebServer("-web", "-webAllowOthers", "-webPort", "8082");
}


@Bean(initMethod="start", destroyMethod="stop")
@DependsOn(value = "h2WebServer")
public org.h2.tools.Server h2Server() throws SQLException {
    return org.h2.tools.Server.createTcpServer("-tcp", "-tcpAllowOthers", "-tcpPort", "9092");
}

解决方法:

您可以使用Java中的@Bean批注样式重写XML Bean定义,如Java-based container configuration中所述.

例如:

@Bean(init-method="start", destroy-method="stop")
public org.h2.tools.Server h2WebServer() {
   return org.h2.tools.Server.createWebServer(
      "-web", "-webAllowOthers", "-webPort", "8082"
   )
}

上面的doc链接将向您展示如何将两个bean连接在一起,以及如何将其添加到Spring上下文中.

上一篇:java-H2服务器在调试时挂起


下一篇:[正经向] 九月杂题整理