【问题标题】:Scanning Spring Data repositories by Spring Config?通过 Spring Config 扫描 Spring Data 存储库?
【发布时间】:2011-12-22 22:29:36
【问题描述】:

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

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

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

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

通过弹簧配置?

2.如果不能,我可以同时使用“ClassPathXmlApplicationContext”和“AnnotationConfigApplicationContext”吗?

【问题讨论】:

    标签: java spring spring-data


    【解决方案1】:

    您现在可以使用注解 @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)

    【讨论】:

    • 这是正确的答案。感谢您的帮助!
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      此答案现已过时。

      目前还没有 &lt;jpa:repositories … /&gt; 的等价物。随意跟踪JIRA ticket。该功能将成为 JPA 模块 (1.1) 和 MongoDB (1.1) 即将发布的 GA 版本的主要功能。

      【讨论】:

        【解决方案4】:

        我认为你应该看看 context:component-scan

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

        它会自动检测带有 @Repository/@Service/@Component 注释的组件。检查here

        【讨论】:

        • 在'public interface Repository'接口上使用@Repository注解属于Spring Data上下文。无论如何,感谢您的帮助和时间。
        猜你喜欢
        • 1970-01-01
        • 2020-10-08
        • 2018-06-15
        • 1970-01-01
        • 2018-08-06
        • 2018-02-02
        • 2016-12-21
        • 1970-01-01
        • 2021-08-13
        相关资源
        最近更新 更多