我目前正在使用所有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上下文中.