近年来,微服务架构(Microservices Architecture)已经成为一种主流的软件开发方法论,它把一种特定的软件应用设计方法描述为能够独立部署的服务套件。所谓微服务(Microservices),就是一些具有足够小的粒度,能够相互协作且自治的服务体系。每个微服务都比较简单,仅关注于完成一个功能并能很好地完成该功能,而这里的功能代表的是一种业务能力。构建微服务体系需要一套完整的方法论和工程实践,而微服务架构的提出代表的就是实现微服务体系的架构模式。
本教材以Spring Boot+Spring Cloud+Docker技术为基础,从当下流行的微服务架构理念出发,详细讲解了微服务和微服务架构方面的技术知识。教材分为架构设计、框架实战和微服务的部署三部分,通过37个实例以“任务驱动、按需学习”的思想讲解知识体系,最后以“游戏商城”项目模块作为综合案例实现微服务架构。
本教材依据教育部《职业技能等级标准开发指南》中的相关要求,以专业技能为模块,将职业技能标准贯穿于各章节中,为职业院校、应用型本科高校“学历证书+若干职业技能等级证书”(简称“1+X证书”)Java Web方向的高级认证提供了很好的支持。教材中包含了大量的实例,重点培养实践操作能力,畅通技术技能人才成长通道,拓展就业创业本领。
本教材在撰写过程中得到了家人的支持和理解,得到了同事们的启发和帮助。在这里,感谢参与本教材编写和审阅的所有老师、工程师,感谢以往和现在公司的同事们,尤其是刘桂祥总监,提供了技术支持和企业应用的实际场景。最后,感谢大连东软信息学院高职学院领导对该教材编写的帮助和支持,感谢天津东软睿道教育信息技术有限公司为该教材编写和出版创造的优良条件。
由于编写时间仓促,以及作者水平有限,教材中难免存在错误和不足之处,恳请广大读者批评指正。
第一部分架构设计
第1章Java Web应用架构设计3
1.1设计模式4
1.1.1设计模式分类5
1.1.2单例模式7
1.1.3工厂模式10
1.1.4代理模式19
1.1.5观察者模式21
1.2系统设计24
1.2.1体系结构设计25
1.2.2Java Web应用程序设计31
1.3数据库设计42
1.3.1数据库设计规范42
1.3.2数据库表关系44
第2章微服务架构设计47
2.1微服务架构基础48
2.1.1微服务简介48
2.1.2微服务设计51
2.2RESTful接口设计53
2.2.1RESTful简介54
2.2.2RESTful设计规范56
2.2.3RESTful的实现59
2.3跨语言数据传输61
2.3.1数据传输协议62
2.3.2JSON跨语言传输实现65
第二部分框架实战
第3章Spring Boot框架开发75
3.1Spring Boot入门77
3.1.1Spring Boot简介77
3.1.2Spring Boot的特点78
3.1.3Spring Boot项目创建78
3.1.4入门程序82
3.1.5单元测试85
3.2Spring Boot核心配置87
3.2.1自动化配置87
3.2.2全局配置89
3.2.3自定义配置91
3.2.4多环境配置95
3.3Spring Boot视图技术96
3.3.1Thymeleaf模板97
3.3.2静态资源访问97
3.3.3Thymeleaf应用98
3.3.4Thymeleaf基本语法101
3.3.5集成Spring MVC104
3.4Spring Boot整合JDBC107
3.4.1Spring Data简介107
3.4.2JdbcTemplate简介108
3.4.3整合JdbcTemplate108
3.5Spring Boot整合MyBatis112
3.5.1MyBatis简介112
3.5.2以配置文件的方式整合113
3.5.3以注解的方式整合119
3.6快速开发RESTful API接口123
3.6.1RESTful API风格123
3.6.2Spring Boot相关注解123
3.6.3实现RESTful API接口124
3.7部署和监控127
3.7.1部署128
3.7.2热部署131
3.7.3监控1343.8Spring Boot综合实例开发136
3.8.1游戏管理实例描述136
3.8.2主要页面效果136
3.8.3数据库设计138
3.8.4游戏管理模块开发140
第4章Spring Cloud配置148
4.1Spring Cloud基础150
4.1.1Spring Cloud简介150
4.1.2Spring Cloud的特点150
4.1.3Spring Cloud版本150
4.1.4Spring Cloud常用组件152
4.1.5Spring Cloud主工程开发152
4.2Eureka服务注册与发现154
4.2.1Eureka简介154
4.2.2编写Eureka Server154
4.2.3编写Eureka Client159
4.3Loadbalancer负载均衡163
4.3.1Loadbalancer简介163
4.3.2结合RestTemplate消费服务163
4.3.3结合WebClient消费服务169
4.4Feign声明式调用170
4.4.1Feign简介170
4.4.2Feign快速入门170
4.5Resilience4j熔断器174
4.5.1微服务治理174
4.5.2Resilience4j简介175
4.5.3服务重试175
4.5.4配置断路器177
4.6Gateway服务网关179
4.6.1Gateway简介179
4.6.2Gateway路由开发180
4.7Config配置中心184
4.7.1Config简介184
4.7.2编写Config Server185
4.7.3编写Config Client188
第三部分微服务的部署
第5章Docker部署193
5.1Docker基本操作194
5.1.1环境安装194
5.1.2Docker简介195
5.1.3Docker常用命令196
5.2基于Dockerfile构建微服务200
5.2.1Dockerfile快速入门200
5.2.2Dockerfile常用指令203
5.3基于Docker Compose编排项目205
5.3.1Docker Compose简介205
5.3.2使用Dockercompose编排项目206
参考文献208
在国家推动传统产业转型升级,大力发展新一代信息技术产业的政策背景下,随着互联网+产业、产业+互联网深度融合,软件产业将实现持续、稳定的快速增长。根据CSDN(国内规模最大的IT技术交流平台)发布的2019年互联网人才招聘报告,在互联网后端开发(Web开发)领域,Java需求占比仍然最大,占比72.8%。
为积极响应《国家职业教育改革实施方案》,贯彻落实《关于深化产教融合的若干意见》《国家信息化发展战略纲要》的相关要求,应对新一轮科技革命和产业变革的挑战,促进人才培养供给和产业需求结构要素全方位融合,促进教育链、人才链与产业链、创新链有机衔接,推进人力资源供给结构性改革,深化产教融合,着力培养高素质劳动者和技术技能人才,大连东软教育科技集团有限公司、天津东软睿道教育信息技术有限公司联合东软集团、上海芮想信息科技有限公司、大连东软信息学院及多所院校成立Java Web应用开发“课证融通”系列教材编委会,依据教育部《职业技能等级标准开发指南》中的相关要求,以客观反映现阶段行业的水平和对从业人员的要求为目标,在遵循有关技术规程的基础上,以项目为导向,以专业技能为核心,组织开发了Java Web应用开发“课证融通”系列教材。
Java Web应用开发“课证融通”系列教材将企业Java Web服务端开发岗位能力模型和《Java Web应用开发职业技能等级标准》进行整合,贯通于计算机类相关专业Java Web服务端开发方向课程体系中,并综合考虑在实际教学与学习过程中分阶段实施,将内容分解为《Java语言程序设计》《MySQL数据库应用开发》《Java Web开发技术》《软件工程与项目管理》《Java Web框架开发》《Java Web架构设计与开发》6本系列教材,构成进阶式三位一体技能图谱,覆盖Java Web服务端开发职业技能等级标准初、中、高级内容,面向软件系统分析与设计、软件系统应用开发(Web服务端软件开发)、软件测试、软件质量保证、软件部署与运维、技术支持等岗位技术需求。
系列教材以实践能力培养为导向、以企业真实应用为目标,以案例为导引,以项目为载体,遵循企业软件工程标准和技术,对JAVA基础、MVC设计模式、Servlet开发、JSP开发、数据库应用与开发、Spring、SpringMVC、MyBatis三大主流框架、微服务框架开发、SpringBoot、Spring Cloud、Docker等Web服务端开发中的重要技能模块完成知识讲解与技能实践,帮助学习者掌握服务端开发必备技能,并在实际工作场景中加以灵活应用。
Java Web应用开发“课证融通”系列教材适合作为高等职业院校计算机应用技术、软件技术、移动应用开发、大数据技术与应用、人工智能技术与服务等专业教材;适合作为应用型本科院校计算机科学与技术、软件工程、数据科学与大数据、人工智能等专业教材;也适合作为《Java Web应用开发职业技能等级标准》培训指导教材及对Web服务端开发感兴趣的读者使用。