现在,我正在使用spring remoting的RMI/SOAP/JMS/Hessian/Burlap/HttpInvoker导出器公开我的应用程序的服务层。我想要的是允许用户以某种方式定义他们希望启用这些远程处理机制中的哪一个(而不是启用所有这些机制),然后只创建这些导出器bean。
我希望spring的应用程序上下文xml支持在xml的各个部分周围放入条件块。然而,到目前为止,我所看到的标准spring发行版中没有任何东西允许您这样做。
有没有其他方法可以实现我想要做的事情?
发布于 2012-02-12 20:00:52
我将假设您希望根据您的环境配置您的应用程序,如...对于生产,我想使用这个豆子,在开发这些其他...
正如Ralph所说,从Spring 3.1开始,你就有了配置文件...但关键是,您应该了解应该将基于环境的bean放在不同的配置文件中……所以你可以有像dev-beans.xml,prod-beans.xml这样的东西...然后在您的主spring文件中,然后您只需根据您所使用的环境调用适当的文件...因此,配置文件只是一种技术。但是,您也可以使用其他技术,例如使用系统环境变量,或在构建中传递参数以确定要使用的bean
发布于 2012-02-12 23:12:55
您可以通过使用Spring @Configuration bean来实现这一点,这样您就可以在java代码中构造bean。(参见http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/beans.html#beans-java)
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
if ( userSettingIshessian ) {
return new HessianExporter();
}else {
return new BurlapExporter();
}
}
}当然,您需要从某个地方获取用户设置,系统参数可能很简单,或者是配置文件或其他文件。
发布于 2012-02-12 19:02:09
Spring 3.1有Profiles的概念。我的,你可以用它们。
https://stackoverflow.com/questions/9248237
复制相似问题