春季

2012-02-12 246 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