Java 为什么我们先创建存储库,然后创建服务,然后再从存储库实现服务?请检查您输入的代码';你会明白吗?
}Java 为什么我们先创建存储库,然后创建服务,然后再从存储库实现服务?请检查您输入的代码';你会明白吗?,java,spring,spring-mvc,spring-boot,spring-data,Java,Spring,Spring Mvc,Spring Boot,Spring Data,} 现在是服务接口和实现 public interface CrudRepository{ Test createThis(Test t); } @Repository public class TestCrud implements CrudRepository{ public Test createThis(Test t) { //implementation } @服务 公共类TestService实现CrudService{ public interfa
现在是服务接口和实现
public interface CrudRepository{
Test createThis(Test t);
}
@Repository
public class TestCrud implements CrudRepository{
public Test createThis(Test t)
{
//implementation
}
@服务
公共类TestService实现CrudService{
public interface CrudService{
Test createThis(Test t);
}
}
当我们使用spring开发web项目时,我们首先使用接口,然后在存储库中实现,而不是
我们再次执行接口,并从存储库实现服务。同样,我们为什么不直接使用
控制器中的存储库,但我们要这样做吗?我希望有人能向我解释一下主要原因是“灵活性”。在您的情况下,服务不知道数据来自何处?而且也不一定。它只知道有一个存储库可以提供一些数据。服务不应该知道日期保存在哪里。它可以在文件、数据库或内存中。另一个目标是,若你们有一个将数据保存在文件中的应用程序,你们想切换到数据库。您只需要编写新的存储库层,它将了解数据库,而不需要在服务层中切换一行代码。这是编写大型应用程序时的主要目标
如果您不理解我的意思,您可以阅读有关“打开-关闭”原则的内容:您可以从一个存储库切换到另一个存储库。。类似地,您可以从一个服务切换到另一个服务。问题是什么?它将您的控制器与存储库隔离,允许您在不重写整个后端应用程序的情况下切换数据库技术。是的,谢谢,我想现在我理解了存储库和服务的区别,因为在这么多教程中,我只看到了一些相同的东西,我对这些东西感到困惑。再次感谢,祝你一切顺利:))
@AutoWired
CrudRepository crudR;
public Test createThis(Test t){
crudR.createThis(t)
}