gpt4 book ai didi

java - 实例化Java Spring存储库接口(interface)而不使用@Autowire

转载 作者:行者123 更新时间:2023-12-01 16:45:51 25 4
gpt4 key购买 nike

这是我的 Spring 存储库界面。

@Repository
public interface WebappRepository extends CrudRepository<myModel, Long> {

}

在我的 Controller 中,由于 Spring 注释的魔力,我可以实例化 WebappRepository,即使它是一个接口(interface)。

public class controller{

@Autowire
WebappRepository repo;

public controller(){

}
}

但是这个使用构造函数的变体不起作用,而且确实如此,因为 WebappRepository 是一个接口(interface)。

public class controller{

WebappRepository repo;

public controller(){
this.repo = new WebappRepository();
}
}

奥利维尔·吉尔克本人advocates to avoid @Autowire fields at all costs 。如何在 Spring 应用程序中“实例化”存储库接口(interface),同时避免使用 @Autowire

最佳答案

在构造函数中注入(inject)依赖项:

@Component
public class Controller{


WebappRepository repo;

@Autowire
public Controller(WebappRepository repo){
this.repo = repo;
}
}

关于java - 实例化Java Spring存储库接口(interface)而不使用@Autowire,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51233990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com