春季

2012-02-12 232 views
1

有条件创造豆现在我揭露使用Spring远程的RMI/SOAP/JMS /黑森州/麻布/ HttpInvoker出口商我的应用程序的服务层。我想要的是允许用户以某种方式定义他们希望启用哪些远程处理机制(而不是启用所有这些机制),然后只创建那些导出器bean。春季

我希望春天的应用程序上下文XML的有用于投入条件块周围的XML的部分支持。然而,从目前为止我看到的标准弹簧分布中没有任何东西可以让你做这样的事情。

是否有任何其他的方式来实现我想要做什么?

+3

它不是sufficent把配置在不同的文件,只加载你感兴趣的人? – 2012-02-12 10:57:30

+0

删除了远程标签,因为是不相关的问题 – 2012-02-12 12:04:20

+0

可能的复制(或至少相关的):http://stackoverflow.com/questions/29844271/conditional-spring-bean-creation – bacar 2015-12-15 10:17:13

回答

6

我会假设你正在寻找基于您的环境配置应用程序,如...生产我想用这个豆子,在开发这些其他...

正如拉尔夫是自从Spring 3.1以来,你就拥有了配置文件......但关键是,你明白你应该将基于环境的bean放在不同的配置文件中......所以你可以拥有诸如dev-beans.xml,prod-beans之类的东西。 xml ...然后在你的主要的spring文件中,然后你只需根据你所使用的环境调用适当的...所以配置文件是唯一的技术...但是你也可以使用其他技术,比如一个系统环境变量,或者在你的构建中传递一个参数来决定你想要使用哪个bean

1

春3.1有配置文件的概念。我可以使用它们。

3

你可以通过使用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(); 
     } 
    } 
} 

当然,你需要从什么地方得到了用户设置,系统参数会很容易,或者配置文件,或别的东西。

+2

春季困境:替换您的配置文件有一个类依赖于另一个配置文件。 – 2013-06-06 17:13:49