Spring Application Architecture Design

时间:2015-12-20 07:08:31

标签: spring hibernate rest spring-mvc

环境:

春季4

Hibernate 4

MySQL

Spring MVC REST

问题:

我正在为CRUD操作编写一个简单的基于REST的应用程序。

架构/组件如下:

enter image description here

我有以下设计问题:

1。在Spring Application中,最佳做法是有两个不同的上下文 -

i) applicationContext :通过ContextLoaderListener初始化(对于servives abd daoLayerClasses)

ii) webApplicationContext :通过Dispather servlet初始化(适用于控制器/视图解析器)

2。但是我还没有看到任何基于Spring REST的示例应用程序使用上面的上下文。仅使用Dispatcher servlet appraoch。

3. 那么,如上面的体系结构所示,为基于REST的应用程序创建两个单独的上下文是一种矫枉过正和不必要的事情吗?

或者最好在WebApplicationContext(@RestController)和ApplicationContext中创建两个分隔SPRING REST层的上下文   (@Services@Repository

2 个答案:

答案 0 :(得分:1)

我认为完全没必要为ControllersService / Repository类创建单独的上下文,除非您考虑使用多个Dispatchers或类似的东西。一般来说,你应该保持简单并尽可能少的上下文。

答案 1 :(得分:0)

这个问题的答案是主观的,但正如其他主题和Spring MVC docs中提到的那样两种情况都是典型的,但不是唯一的方法。

我认为主要原因是将它们分开是在拥有UI和API时。它们可能依赖于相同的后端服务,但可能不应该有混合的bean。