XML配置

每个Spring Data模块都包含一个repository元素,通过这个元素开发者可以轻松的定义spring扫描包的路径。

Example 11.Enabling Spring Data repositories via XML

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://www.springframework.org/schema/data/jpa"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/data/jpa
    http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">

  <repositories base-package="com.acme.repositories" />

</beans:beans>

在上面的例子中,Spring扫描base-package中指定的路径及其包含的所有包,检测出继承Repository或者其子接口的接口。每找到一个接口,FactoryBean会创建对应的代理去处理查询方法的调用。每个注册的bean的名称都来自于接口名称,例如:UserRepository将会被注册为userRepository。base-package允许使用通配符来定义扫描路径。

使用过滤器

默认情况下,Spring会找到配置路径下的所有接口并为其创建一个bean实例。但有些情况下开发者可能想要更细致的控制创建bean实例的接口。这时候,可以在元素中使用。这些元素的详细用法可以参考spring参考文档。 下面的配置就是排除某些特定接口的例子:

Example 12. Using exclude-filter element(使用exclude-filter元素)

<repositories base-package="com.acme.repositories">
  <context:exclude-filter type="regex" expression=".*SomeRepository" />
</repositories>

上面的配置排除了所有以SomeRepository结尾的接口。