
上QQ阅读APP看书,第一时间看更新
2.2 Spring Boot项目的通用框架
用Spring Boot框架开发出的不同项目可能业务上会大相庭径,用到的日志或数据库等组件也未必相同,但大多数Spring Boot项目的框架如图2.1所示,即项目由控制器层、业务逻辑层、服务提供层和数据服务层构成。
其中各模块的作用描述如下:
(1)在控制器层,一般会以@RequestMapping注解指定控制器类中的方法可以处理哪些格式的URL请求。在控制器类中,一般会调用业务逻辑层中的方法来处理请求。
(2)在业务逻辑层的类中,一般会封装业务层面的方法,比如实现“用户购买商品”的方法,在其中一般会调用服务提供层中的方法来完成业务。
(3)在服务提供层,一般会封装诸多服务方法,而往往一个业务动作会包含多个服务方法,比如“用户购买商品”的业务动作中,可以封装“增加订单”“风险控制”和“扣除用户余额”等服务动作。不过在一些规模比较小的项目中,往往会把业务逻辑层和服务提供层合二为一。
(4)在数据服务层,一般会封装针对数据库的操作动作,其中采用JPA或MyBatis等组件来与数据库交互。
通过这种“分层”的做法,程序员能把不同类型的代码放到对应的模块中,这样就能在Spring IoC的基础上进一步降低模块和类之间的耦合度,进而更好地提升项目的可维护性。

图2.1 大多数Spring Boot项目的框架图