Условно создавая бобы весной - PullRequest
1 голос
/ 12 февраля 2012

Прямо сейчас я раскрываю сервисный уровень моего приложения, используя экспортеры RMI / SOAP / JMS / Hessian / Burlap / HttpInvoker с удаленным удаленным взаимодействием.Я хотел бы позволить пользователю как-то определить, какой из этих механизмов удаленного взаимодействия он хотел бы включить (вместо того, чтобы включить все), а затем создавать только эти экспортные бины.

Я надеялся, что SpringXML-контекст приложения имел поддержку для размещения условных блоков вокруг частей xml.Однако из того, что я видел до сих пор, в стандартном дистрибутиве пружин нет ничего, что позволяло бы вам делать что-то подобное.

Есть ли другие способы достижения того, что я пытаюсь сделать?

Ответы [ 3 ]

6 голосов
/ 12 февраля 2012

Я собираюсь предположить, что вы хотите сконфигурировать ваше приложение на основе вашей среды, как в ... для производства Я хочу использовать эти компоненты, в dev эти другие ...

Как Ральфговорит, что начиная с Spring 3.1 у вас есть профили ... Но главное, вы понимаете, что вы должны поместить bean-компоненты, основанные на вашей среде, в разные конфигурационные файлы ... чтобы вы могли иметь что-то вроде dev-beans.xml, prod-beans.xml ... Затем в вашем основном весеннем файле вы просто вызываете соответствующий файл в зависимости от среды, которую вы используете ... Так что профили - это всего лишь метод для этого ... Но вы также можете использовать другие методы, такие какиметь системную переменную среды или передать параметр в вашей сборке, чтобы решить, какие компоненты вы хотите использовать

3 голосов
/ 12 февраля 2012

Вы можете реализовать это с помощью bean-компонента Spring @Configuration, чтобы вы могли создавать свои bean-компоненты в java-коде.(см. 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();
      }
  }
}

Конечно, вам нужно откуда-то получить пользовательские настройки, простой системный параметр, файл конфигурации или что-то еще.

1 голос
/ 12 февраля 2012

Spring 3.1 имеет концепцию профилей.Мой вы можете использовать их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...