



Spring从出现开始就为企业开发提供了强有力的支持,从最初的依赖注入容器及灵活配置方式,经过多年的发展已经成为功能丰富、生态完整的企业应用开发全栈框架。从开发及架构上,Spring框架具有以下优点:
·Spring的依赖反转功能让我们可以开发出方便进行测试的代码。
·提供了易用、灵活、强大的数据事务管理支持功能。
·Spring强大的开放基因,使得其可以和众多框架,如JPA/Hibernate、JSF、Kafka、RabbitMQ、Thymeleaf等整合,都可以轻易地整合到应用开发中。
·提供了标准化的Web应用开发支持Spring MVC。
Spring框架提供了如下功能和子系统:
·Spring Data;
·Spring MVC;
·Spring Security;
·Spring Session;
·Spring Cloud;
……
这些功能和子系统使开发者在开发时越来越专注于业务功能的开发,而将框架及基础设施的研发交给Spring。但随之而来的问题也越来越突出,Spring框架的高度灵活性和配置的多样性,使开发者在使用之初的学习难度曲线陡增,使用习惯之后又不得不面对在每个项目中几乎重复实现各项配置,如DataSource、EntityManage、MessageSource、ViewResolver等,而且一不小心还会出错,查找半天才知道是因为某个配置错误造成的。
从接触软件开发我们就知道,如果需要重复做一件事情,那么最好的方式就是让计算机代劳,而且永不会出错。因此,Spring团队在意识到这个问题之后,就推出了Spring Boot。Spring Boot框架所提供的自动配置机制可以完成这些配置,快速启动一个项目,并且在后续的开发上配置保持最简。
在使用上,Spring Boot通过提供一系列名称以spring-boot-starter开头的启动器帮助我们简化项目的依赖。比如,当我们在项目中添加了spring-boot-starter-web时,Spring Boot就自动将相关依赖,如spring-mvc、jackson-json、tomcat等引入,从而将项目变成一个Web项目。大家可以到这里( http://t.cn/Rn30Zr7 )查看全部的Spring Boot启动器列表。在开发时我们常用的启动器有以下几个:
·spring-boot-starter-web,Web应用开发。
·spring-boot-starter-logging,日志处理;
·spring-boot-starter-jpa,数据存储管理;
·spring-boot-starter-security,安全管理;
·spring-boot-starter-actuator,应用监控;
·spring-boot-srarter-data-redis,Redis数据库集成;
·spring-boot-starter-amqp,消息中间件集成。
在接下来的几节中我们将进行如下操作:
(1)使用Spring Boot快速构建一个最基础的应用框架,并且使用Maven脚本来管理和构建。
(2)在该应用框架基础上构建一个三层应用架构的电子商城应用示例。这个示例又可以分为以下几个步骤来完成:
①通过分析电子商城需求设计出我们的业务实体对象。
②基于Spring Data JPA完成数据的存储处理,并创建数据库初始化脚本。
③完成业务逻辑的设计与开发。
④采用REST完成对外API的开发,这样可以通过多种方式访问到应用功能。
(3)完成整个应用并打包运行示例项目。
通过上面的步骤,我们可以快速进入Spring Boot开发的世界。然后再基于Spring Boot框架一步步快速搭建出各个微服务应用。在这些步骤中,会穿插讲解Spring Boot中的一些核心机制,使我们在进入微服务开发之前可以掌握一些基于Spring Boot开发的基础知识。希望读者们能够享受接下来的过程。