2015-12-30 91 views
4

为什么我们使用服务层和DAO与JPA存储库。 在spring mvc项目中使用这种架构是否有任何标准? 我对此感到迷惑,而且我是春天mvc的新手。 请帮帮我。 在此先感谢。为什么我们使用服务层和DAO与JPA存储库

+0

我们通常使用服务层来抽象出DAO层。业务层不应该知道我们正在使用哪个ORM。它应该只与服务层交谈。它也有助于您切换DAO层。 – Amit

+0

当我们使用JPA Repository(我相信你在谈论Spring Data JPA)时,它通常与域驱动设计有关,而在DDD中,人们通常认为Repository位于域层,并且没有所谓的DAO层在这样的设计中。存储库通常被认为是更抽象的概念,而DAO服务于更多的技术目的(ahh ...很难在这么短的一段中解释) –

回答

1

我使用Spring MVC和在我的项目我有3层

  1. 控制器
  2. 服务
  3. DAO

控制器简单地控制进/出的project.In控制器我们不写任何业务逻辑

我们将所有业务逻辑写入服务层

在DAO,我们写出这样的CRUD操作

这是因为我们不希望混合所有的逻辑在一个类流所做的数据库逻辑。它会增加负担,难以调试

1

有两个理由使用服务层:

1.代码模块化:

使用服务层,我们可以将代码分成像ORM不同层和业务逻辑。有没有关系DB

2.安全

服务层,则是更难获得从客户端访问数据库,除非通过该服务。如果数据库不能直接从客户端访问(并且没有微不足道的DAO模块作为服务),那么接管客户端的所有攻击者都可以尝试破解服务层,对您的数据进行最严格的清理访问。