名师讲坛:Java微服务架构实战(SpringBoot+SpringCloud+Docker+RabbitMQ)
上QQ阅读APP看书,第一时间看更新

1.1 传统开发中痛的领悟

在Java项目开发中,MVC已经成为了一种深入人心的设计模式,几乎所有正规的项目之中都会使用到MVC设计模式。采用MVC设计模式可以有效地实现显示层、控制层、业务层、数据层的结构分离,如图1-1所示。

图1-1 MVC设计模式

虽然MVC开发具有良好的可扩展性,但是在实际的开发过程中,许多开发者依然会感受到如下的问题。

采用原生Java程序实现MVC设计模式时,一旦整体项目设计不到位,就会存在大量的重复代码,并且项目维护困难。

为了简化MVC各个层的开发,可以引用大量的第三方开发框架,如Spring、Hibernate、MyBatis、Shiro、JPA、SpringSecurity等,但这些框架都需要在Spring中实现整合,其结果就是会存在大量的配置文件。

当使用一些第三方的服务组件(如RabbitMQ、Kafka、JavaMail等)时,需要编写大量重复的配置文件,而且还需要根据环境定义不同的profile(如dev、beta、product)。

使用Maven作为构建工具时,需要配置大量的依赖关系,且程序需要被打包为*.war文件并部署到应用服务器上才可以执行。

Restful作为接口技术应用得越来越广泛,但如果使用Spring来搭建Restful服务,则需要引入大量的Maven依赖库,并且需要编写许多的配置文件。

基于以上种种因素,很多人开始寻求更加简便的开发方式,而遗憾的是,这种简便的开发没有被官方的JavaEE所支持。JavaEE官方支持的技术标准依然只提供最原始的技术支持。