【问题标题】:Construction injection and JPA repositories构造注入和 JPA 存储库
【发布时间】:2017-05-09 20:19:47
【问题描述】:

关于Why field injection is evil,我想在我的 Spring 应用程序构造中使用注入而不是字段注入。

我的问题 - 如何注入 JPA 存储库 - 从哪里获取未实例化为 bean 的实例(到我的 @Service bean 中)?

【问题讨论】:

    标签: java spring dependency-injection


    【解决方案1】:

    您可以使用构造函数注入。
    它没有反射注入场的缺点。 这是来自Spring 的示例

    @Service
    public class FooService {
    
        private final FooRepository repository;
    
        @Autowired
        public FooService(FooRepository repository) {
            this.repository = repository
        }
    }
    

    【讨论】:

    • 不,我需要知道从哪里获取 JPA 存储库的实例,当我创建另一个 bean 的实例时我需要一个。 '@Bean FooService fooService(){ return new FooService({jpa repository instance}); }'
    • 在这种情况下,您向 fooService 添加一个方法参数:@Bean FooService fooService(FooRepository repository) {}。 Spring 会自动将存储库注入那里。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-04
    • 1970-01-01
    • 2013-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多