ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 第一章 微服务和SpringBoot ### 微服务架构 “微服务架构”这个术语最近几年横空出世,它以若干组可独立部署的服务的方式进行软件应用系统的设计。关于微服务架构的讨论最早是一篇由Martin Fowler在2014写的著名文章开始的。尽管这种架构风格在业界尚无精确的定义,但Martin Fowler还是给出了以下特征描述: 它是以开发一组小型服务的方式来开发一个独立的应用系统的。其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来相互通信。这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部署。这些微服务可以使用不同的语言来编写,并且可以使用不同的数据存储技术。对这些微服务我们仅做最低限度的集中管理。 说白了,微服务架构相比传统架构的一个显著特点就是去中心化,将之前的服务再细分,并配套相应的自动化基础设施。 ### SpringBoot 根据ThoughtWorks2016年最新的一次技术雷达显示,SpringBoot微服务框架越来越得到业界的重视和应用。之前的Spring框架在Java语言的带动下已经在企业开发中广泛使用,如果Spring生态系统正像技术雷达中的显示,走向微服务架构。那SpringBoot就是当下最好的选择。 SpringBoot就是为微服务而诞生的,而且它提供了一个强大的一键式Spring的集成开发环境,能够单独进行一个Spring应用的开发,其中: (1)集中式配置(application.properties)+注解,大大简化了开发流程 (2)内嵌的Tomcat和Jetty容器,可直接打成jar包启动,无需提供Java war包以及繁琐的Web配置 (3)提供了Spring各个插件的基于Maven的pom模板配置,开箱即用,便利无比。 (4)可以在任何你想自动化配置的地方,实现可能 (5)提供更多的企业级开发特性,如何系统监控,健康诊断,权限控制 (6)无冗余代码生成和XML强制配置 (7)提供支持强大的Restfult风格的编码,非常简洁 当然Spring Boot提供的功能,远远比上面的强大。 Spring boot集成了servlet容器,当我们在pom文件中增加spring-boot-starter-web的maven依赖时,不做任何web相关的配置便能提供web服务,这还得归于Spring boot自动配置的功能(因为加了EnableAutoConfiguration的注解),帮我们创建了一堆默认的配置,以前在web.xml中配置,现在都可以通过spring bean的方式进行配置,由spring来进行生命周期的管理,大多数情况下,我们需要重载这些配置(例如修改服务的启动端口,contextpath,filter,listener,servlet,session超时时间等)。