Spring Config扫描Spring Data存储库?

时间:2011-12-22 22:29:37

标签: java spring spring-data

我正在尝试在一个小型独立应用程序中一起使用spring数据和spring配置。

...
  public static void main( String[] args )
  {        
    ApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class);
    ... 
  }

1。我的问题是如何在不使用

的情况下发现spring数据存储库
<jpa:repositories base-package="foo.repositories" />

通过spring config?

2. 如果没有,我可以以某种方式一起使用'ClassPathXmlApplicationContext'和'AnnotationConfigApplicationContext'吗?

4 个答案:

答案 0 :(得分:60)

您现在可以使用注释@EnableJpaRepositories("some.root.package")

例如:

@Configuration
@EnableTransactionManagement(proxyTargetClass = true)
@EnableJpaRepositories("some.root.package")
@ComponentScan(basePackages = { "maybe.another.root.package" })
public class SystemConfiguration {
    ...
}

Spring Data's announcement

答案 1 :(得分:4)

为了完整起见并解决第二个问题:是的,您可以组合Java和XML配置。这样您就不必等待下一个Spring Data JPA版本。

使用ImportResource注释您的配置类,如下所示:

@Configuration
@ImportResource("classpath:jpa-config.xml")
public class AppConfig {
    ...
}

答案 2 :(得分:2)

此答案现已过时。

目前还没有<jpa:repositories … />的等价物。随意跟踪JIRA ticket。该功能将是即将发布的JPA模块(1.1)以及MongoDB(1.1)的GA版本的主要功能。

答案 3 :(得分:1)

我认为你应该看一下上下文:component-scan

<context:component-scan base-package="com.myProject"/>

它自动检测使用@ Repository / @ Service / @ Component注释的组件。请检查here