2013-09-30 103 views
0

我想弄清楚如何獲得OrderRepository的存儲,以便我可以使用Spring的java配置將它傳遞到OrderServiceImpl的構造函數中(我已經知道如何用xml配置來實現)。如何使用Spring Java配置與Spring數據JPA存儲庫配置服務

@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 ??? 
    } 
    ... 
    } 

回答

3
@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); 
    } 

} 

類似的東西應該工作。或者只需在的註釋中添加一個字段,並刪除構造函數,該構造函數需要orderRepository。或者依靠組件掃描並全部刪除@Bean方法。

您有一個組件掃描和@Bean方法,您可能會以這種方式運行到您的服務的重複實例中(如果它注有@Service)。