Перевести конфигурацию Spring XML в конфигурацию Java - PullRequest
7 голосов
/ 10 февраля 2010

Я бы хотел использовать Spring с конфигурацией Java, но почти все примеры написаны на XML, и я не знаю, как перевести их на Java. Посмотрите на эти примеры из Spring Security 3 :

 <http auto-config='true'>
   <intercept-url pattern="/**" access="ROLE_USER" />
 </http> 

 <authentication-manager>
    <authentication-provider>
      <user-service>
        <user name="jimi" password="jimispassword" authorities="ROLE_USER, ROLE_ADMIN" />
        <user name="bob" password="bobspassword" authorities="ROLE_USER" />
      </user-service>
    </authentication-provider>
  </authentication-manager>

  <password-encoder hash="sha">
    <salt-source user-property="username"/>
  </password-encoder>

Как это можно перевести в конфигурацию Java? Или, в более общем смысле, как я могу перевести конфигурацию Spring XML в Java? Есть небольшой раздел о Java-конфинге в справочнике Spring , но это не так полезно.

Ответы [ 3 ]

3 голосов
/ 10 февраля 2010

Следуйте JavaConfig проекту документации .

2 голосов
/ 11 февраля 2010

Это, вероятно, проще, чем вы думаете. Весна не делает никакой магии. Синтаксический анализатор конфигурации XML просто создает определения компонентов и регистрирует их в фабрике компонентов. Вы можете сделать то же самое, создав DefaultListableBeanFactory и зарегистрировав в нем определения своего компонента. Основная ошибка здесь заключается в том, чтобы думать: «Ну и дела, я просто создаю бины и помещаю их в контекст приложения». Этот подход не работает, потому что Spring создает бины лениво, а API построен на идее фабрики, которая вызывается при необходимости, а не фабрики, которая выполняет всю работу при запуске.

Вот пример кода . Обратите внимание, что в этом примере требуется гораздо больше строк кода, но, определив свои собственные вспомогательные методы, вы сможете разбить его на что-то, что должно быть на одном уровне с XML.

Также проверьте источник для модульных тестов Spring для примеров.

1 голос
/ 10 февраля 2010

Нельзя переводить конфигурации XML с пользовательскими пространствами имен (например, http://www.springframework.org/schema/security). Однако вы можете смешивать XML-конфигурации с Java на основе @ImportResource

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