5)“Spring DI机制降低了业务对象替换的复杂性
6)Spring属于低侵入,代码污染极低
7)Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部”[2]
1。3。6 Spring Boot
“Spring由于其繁琐的配置,一度被人成为“配置地狱”,各种XML、Annotation配置,让人眼花缭乱,而且如果出错了也很难找出原因。”[6]“Spring Boot项目就是为了解决配置繁琐的问题,最大化的实现约定大于配置(convention over configuration),使用Spring Boot只需要很少的配置(开箱即用),大部分的时候我们直接使用默认的配置即可;”[6]
Spring Boot的特性有以下几条:
1)遵循约定(习惯优于配置)的原则,使用Spring Boot只需要很少的自定义配置,大部分的时候我们直接使用默认的配置即可;
2)快速搭建新的项目,能够无需配置的自动整合流行的第三方框架;
3)可以完全脱离XML配置文件;
4)内嵌Servlet容器,降低了对环境的要求,可以使用命令直接执行项目,应用可用jar包执行:java -jar;
5)提供了starter POM,“它将常用的依赖分组进行整合,将其合并到一个依赖中,这样就可以一次性添加到项目的Maven或Gradle构建中”[6];
6)“Spring Boot的命令行接口(Command-line interface, CLI)发挥了Groovy的优势,并结合自动配置进一步简化Spring应用开发”[6];
6)运行中应用状态的监控,Actuator为Spring Boot应用添加了一定的管理特性;文献综述
7)对主流开发框架的无配置集成;
8)与云计算的天然继承。
核心功能
1)独立运行的Spring项目
2)内嵌的Servlet容器
3)提供starter简化Maven配置
4)自动配置Spring
5)应用监控 Spring Boot提供了基于Http、ssh、telnet对运行时的项目进行监控
6)无代码生成和XML配置
缺点:
缺点就是简单的背后蕴藏了巨大的学习曲线。入门容易,但是如果没有完整学习spring的体系,碰到问题就无从下手。
1。3。7 微服务
“什么是微服务架构呢?简单说就是将一个完整的应⽤(单体应⽤)按照⼀定的拆分规则拆分成多个不同的服务,每个服务都能独⽴地进⾏开发、部署、扩展。服务于服务之间通过注⼊RESTful api或其他⽅式调⽤”[1]。
微服务开发要素
编号 要素 描述
1 Codebase 一份代码,多环境部署
2 Dependencies 使用显式的声明隔离依赖,即模块单独运行,并可以显式管理依赖
3 Config 在环境中存储配置
4 Backing Services 把后端服务当作附加资源(数据库、消息队列、缓存等)
5 Build, release, run 严格的划分编译、构建、运行阶段
6 Processes 以一个或多个无状态进程运行应用
7 Port binding 通过端口绑定导出服务
8 Concurrency 通过进程模型进行扩展,水平扩展