Использование трансляции исключений в стиле @ Repository из конфигурации Spring Java - PullRequest
6 голосов
/ 21 апреля 2011

Если я хочу объявить bean-компонент с использованием конфигурации Spring 3 на основе Java, я могу сделать это:

@Configuration
public class MyConfiguration {
    @Bean
    public MyRepository myRepository() {
        return new MyJpaRepository();
    }
}

Но, поскольку я не могу использовать аннотацию @Repository в этом контексте,заставить Spring выполнить перевод исключений?

1 Ответ

4 голосов
/ 21 апреля 2011

Объявите свой класс MyJpaRepository в качестве репозитория:

@Repository
public class MyJpaRepository {
  ...
}

И убедитесь, что ваши аннотации можно обнаружить, настроив элемент компонентного сканирования в конфигурации Spring:

<context:component-scan base-package="org.example.repository"/>

Поскольку вы не хотите, чтобы ваш репозиторий включался в проверку аннотаций по вашим комментариям, отфильтруйте его, исключив все аннотации @Repository или ваш конкретный класс (ы) или пакет.Вот пример этого в документации:

<context:component-scan base-package="org.example.repository">
  <!-- use one or the other of these excludes, or both if you *really* want to -->
  <context:exclude-filter type="regex" expression="*Repository"/>
  <context:exclude-filter type="annotation"
                          expression="org.springframework.stereotype.Repository"/>
</context:component-scan>

Документация Spring 3.0 описывает эту конфигурацию более подробно в разделе 3.10.

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

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