【问题标题】:How to configure Services with Spring Data JPA repositories with spring Java Configuration如何使用 Spring Java 配置使用 Spring Data JPA 存储库配置服务
【发布时间】:2013-09-30 23:46:03
【问题描述】:

我试图弄清楚如何获取 OrderRepository,以便我可以使用 Spring 的 java 配置将它传递给 OrderServiceImpl 的构造函数(我已经知道如何使用 xml 配置来完成它)。

@Configuration
@ComponentScan(basePackages = "com.sample.app")
@EnableJpaRepositories("com.sample.app")
@EnableTransactionManagement
public class AppConfig 
{

    @Bean
    public OrderService orderService()
    {
        return new OrderServiceImpl(orderRepository());
    }

    @Bean
    public OrderRepository orderRepository()
    {
        return ??? What goes here ???
    }
    ...
    }

【问题讨论】:

    标签: spring jpa-2.0 spring-data


    【解决方案1】:
    @Configuration
    @ComponentScan(basePackages = "com.sample.app")
    @EnableJpaRepositories("com.sample.app")
    @EnableTransactionManagement
    public class AppConfig {
    
        @Autowired
        private OrderRepository orderRepository;
    
        @Bean
        public OrderService orderService() {
            return new OrderServiceImpl(orderRepository);
        }
    
    }
    

    类似的东西应该可以。或者干脆在你的OrderServiceImpl 里面放一个用@Autowired 注释的字段,然后删除带有orderRepository 的构造函数。或者依赖组件扫描并一起删除@Bean 方法。

    您有一个组件扫描和@Bean 方法,您可能会以这种方式遇到重复的服务实例(如果它带有@Service 注释)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-28
      • 2014-09-22
      • 2018-01-03
      • 1970-01-01
      • 2012-05-10
      • 1970-01-01
      • 1970-01-01
      • 2015-10-19
      相关资源
      最近更新 更多