n-tier

时间:2015-09-08 12:53:57

标签: java spring-data-rest

我喜欢Spring Data Rest提供的开箱即用功能,但我发现在将其用于下一个项目之前我想解决一些设计问题:

  1. SDR的主要趋势似乎是直接通过MVC公开数据存储库。我认为这是一个有缺陷的方法,因为你最终将你的API与你所说的数据库绑在一起。在您的数据库中考虑这个: TABLE customer { fullName TEXT }
  2. 在弹簧数据休息下,最终将被导出为例如: {    "全名":" foo" }

    现在假设我决定更改我的数据库表来说: TABLE customer { firstName TEXT lastName TEXT }

    也就是说,我将该字段分成两部分:突然我的面向客户端的API已被修改。如果我有更好的控制权,我将提供ApiCustomer对象,其中包含: ApiCustomer{ String fullname; }

    在映射期间,我有机会说fullName现在是firstName + lastName,而我的面向客户的API保持不变。我是否可以加入转换过程以确保不会发生?

    1. 假设我想开发一个N层应用程序,其中我有一个处理所有HTTP / REST /验证位的MVC模块和一个链接到DB的核心模块。这两个模块存在于不同的JVM中,并且相互连接,例如,rabbitmq或其他任何模块。
    2. 除非我遗漏了什么,否则Spring Data Rest希望我将存储库放在MVC模块中,我根本没有任何数据库组件。我无法想办法告诉它:这些是你将在其他地方拥有的存储库,无论何时你需要对它们做一些事情,先问我,这样我就有机会代理Core模块。

      我在这里走错路吗?

1 个答案:

答案 0 :(得分:0)

这个新的春季项目似乎很适合这个: http://docs.spring.io/spring-data/keyvalue/docs/current/reference/html/