0

我试图弄清楚如何获取 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 ???
    }
    ...
    }
4

1 回答 1

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

}

像这样的东西应该工作。或者简单地在你的内部放置一个OrderServiceImpl带有注释的字段@Autowired并删除带有orderRepository. 或者依赖组件扫描并@Bean一起删除这些方法。

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

于 2013-10-01T06:09:15.750 回答