如何在没有 XML 的情况下使用 Spring 启动 H2 WebServer?
How to start H2 WebServer using Spring without XML?
我目前正在使用所有 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"
)
}
上面的文档 link 将向您展示如何将两个 bean 连接在一起,以及如何将其添加到 Spring 上下文中。
我目前正在使用所有 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"
)
}
上面的文档 link 将向您展示如何将两个 bean 连接在一起,以及如何将其添加到 Spring 上下文中。