java微服务简介与实战huxianhe0

传统的web开发模式:所有的功能打包在一个包里,基本没有外部依赖(除了容器),部署在一个JEE容器(Tomcat,JBoss,WebLogic)里,包含了DO/DAO,Service,UI等所有逻辑。(注:没找到更好的图片,只好转载一下CSDN的配图了)

这种方式比较适合小型的项目,开发集中简单,方便管理。

但是对于大型的项目来是说,系统的稳定性,扩展度,灵活性都差强人意。所以就需要分布式开发,也就是微服务架构了。微服务的目的是有效的拆分应用,实现敏捷开发和部署。

随着微服务理念的兴起,SpringBoot正是在这样的一个背景下被抽象出来的开发框架,目的为了让大家更容易的使用Spring、更容易的集成各种常用的中间件、开源软件;另一方面,SpringBoot诞生时,正处于微服务概念在慢慢酝酿中,SpringBoot的研发融合了微服务架构的理念,实现了在Java领域内微服务架构落地的技术支撑。

1.2、什么是springboot?

作为微服务的入门级框架,springboot具有方便快速等优点,是我们的首选。

官网翻译:SpringBoot可以很简单的就创建一个你可以运行的独立的、生产级别的应用系统。我们可以使用Spring平台和第三方库快速的开始,很多的SpringBoot应用需要很少的配置。

翻译成大白话就是:SpringBoot是集成了多种架构于一体的架构,能够减少配置,更加便捷开发。

1.3、springboot的主要特点:

二、环境搭建

eclipse直接安装就好;

SourceTree和NavicatforMySQL直接安装用就好;

ps:我链接的服务器,所以没搭建本地sql数据库;如果没有服务器上的mysql数据库,本地需要搭建一个并进行配置

三、项目实例

3.1、工程结构

3.2、重点要做好swaggerConfig端口配置,配置好port端口号

3.3、配置dev的ip和端口信息:

3.4、写好xml的数据库查询文件:

3.5、右键debug-icmsDeviceApplication,启动运行程序

3.6、程序运行起来后,打开swagger界面

四、项目实例

controller层

4.1、增加用户

/***@Title:insertRole*@Description:增加角色*@param:@paramrole*@param:@return*@return:Object*@throws*/@ApiOperation(value="增加角色")@PostMapping(value="${icmsuser.role.insertRoleUrl}",consumes={"application/json;charset=UTF-8"},produces={"application/json;charset=UTF-8"})publicObjectaddUser(@RequestBodyRolerole){logger.info("入口信息为:"+role.toString());Objectresult=null;if(role!=null&&StringUtils.isNotEmpty(role.getRoleName())){try{role.setCreator(1);roleService.insertRole(role);result=ResultFactory.getInstance().getSingleValueResult(Boolean.valueOf("true"));logger.info("增加角色信息成功:"+role.toString()+"返回信息:"+result.toString());}catch(Exceptione){logger.error("增加角色信息异常",e);}}else{result=ResultFactory.getInstance().getErrorResult("00050003");logger.error("您输入的为空或含有空信息,错误码:00050003");}logger.info("出口信息为:"+result.toString());returnresult;}

4.2、删除用户

/***@Title:deleteRoleByID*@Description:删除角色*@param:@paramroleID*@param:@return*@return:Object*@throws*/@ApiOperation(value="删除角色")@DeleteMapping(value="${icmsuser.role.deleteRoleByIDUrl}")publicObjectdeleteRoleByID(@RequestParam(value="roleID",required=true)IntegerroleID){logger.info("入口信息:"+roleID);Objectresult=null;if(roleID!=null&&!"".equals(roleID)){roleService.deleteRoleByRoleID(roleID);result=ResultFactory.getInstance().getSingleValueResult(Boolean.valueOf("true"));logger.info("删除角色信息成功ID为:"+roleID+"返回信息:"+result.toString());}else{result=ResultFactory.getInstance().getErrorResult("00050005");logger.error("输入信息不能为空");}returnresult;}

4.3、修改用户

/***@Title:updateRole*@Description:修改角色*@param:@paramrole*@param:@return*@return:Object*@throws*/@ApiOperation("修改角色")@PostMapping(value="${icmsuser.role.updateRoleUrl}",consumes={"application/json;charset=UTF-8"},produces={"application/json;charset=UTF-8"})publicObjectupdateRole(@RequestBody@ApiParam(name="role",value="角色信息",required=true)Rolerole){logger.info("入口信息为:"+role.toString());Objectresult=null;RoleroleQueryObj=roleService.findRoleByRoleID(role.getRoleID());if(null==roleQueryObj){logger.error("没有此条记录,错误码:00050004");result=ResultFactory.getInstance().getErrorResult("00050004");}else{try{//修改角色roleService.updateRole(role);//返回信息result=ResultFactory.getInstance().getSingleValueResult(Boolean.valueOf("true"));logger.info("修改角色信息成功:"+role.toString()+"返回信息:"+result.toString());}catch(Exceptione){logger.error("修改角色信息异常",e);}}logger.info("出口信息为:"+result.toString());returnresult;}

4.4、查找用户

/***@Title:findRoleByRoleID*@Description:根据ID查询角色信息*@param:@paramroleID*@param:@return*@return:Object*@throws*/@ApiOperation("根据ID查询角色信息")@GetMapping(value="${icmsuser.role.findRoleByIDUrl}")publicObjectfindRoleByRoleID(@RequestParam(value="roleID",required=true)IntegerroleID){logger.info("入口信息为:"+roleID);ObjectresultObj=null;if(roleID!=null){try{Rolerole=roleService.findRoleByRoleID(roleID);resultObj=role;}catch(Exceptione){logger.error("角色ID获取角色信息",e);}}else{logger.error("根据编号查询角色信息接口,输入信息不能为空,请重新输入,错误码:00050001");resultObj=ResultFactory.getInstance().getErrorResult("00050001");}returnresultObj;}

domain层

mapper层

service层

publicinterfaceRoleService{/***@Title:findRoleByRoleID*@Description:根据角色编号查询角色信息*@param:@paramroleID*@param:@return*@return:Role*@throws*/publicRolefindRoleByRoleID(IntegerroleID);publicvoidinsertRole(Rolerole);publicvoidupdateRole(Rolerole);publicvoiddeleteRoleByRoleID(introleID);}

serviceImpl层

resource文件夹中的xml文件:

五、工作中可能出现的异常及排查

5.1、工作空间中,必须得有环境配置的pom

5.2、java配置由jre改成jdk

5.3、点开下拉项,在对话框里输入字符,点击“tryitout”,观察返回结果

THE END
1.项目实战51CTO课件名称:项目实战-51CTO-大型分布式微服务母婴电商项目开发实战教程 更新进度:├第八章 母婴电商-配置http://www.dxbb8.cn/forum.php?mod=viewthread&tid=65596&ordertype=1
2.JAVA微服务客服系统实例mob64ca1414c613的技术博客在项目中的主类上添加@EnableEurekaServer注解,然后运行应用程序。Eureka服务器将在http://localhost:8761上启动。 2. 创建Eureka客户端 现在,我们将创建一个简单的Eureka客户端应用程序,该应用程序将注册自己到Eureka服务器并能够发现其他微服务。 步骤1:创建Spring Boot项目 https://blog.51cto.com/u_16213702/12852903
3.2020黑马Java就业班培训零基础+项目实战(含:视频/源码/课件资料本套课程会从Java的基础语法开始讲,所以即使你是没有任何基础的小白,只要你愿意学,到最后也一定能把这门语言学到炉火纯青的地步,本套课程包含19个章节的内容,覆盖基础学习与进阶、项目实战与Java相关工作面试技巧等。非常适合系统的零基础人员学习与转行。本套课程包含完整课程培训视频、源码、课件资料等共计80G。https://www.zx-cc.net/1749.html
4.微服务架构Springboot项目实战(共13套)视频下载微服务架构Springboot项目实战(共13套) 视频 下载 资料目录: 微服务架构Springboot项目实战(共13套)|___目录截图 |___目录截图.JPG |___10、Spring Cloud +boot+docker全套视频教程.JPG |___08、Spring Cloud微服务架构项目实战(分布式事务解决方案).JPG |___07.SpringCloud微服务项目实战(大型电商架构系统)(http://download.java1234.com/article/1768
5.《学习资料》java:107个 xml:37个 properties:21个 版权申诉 JAVA springcloud 微服务 106 浏览量2024-04-19上传738KBZIP 基于SpringCloud的微服务架构实战案例项目,以一个简单的购物流程为示例,融合spring cloud 相关组件,如spring-cloud-netflix、swagger等 个人花大量时间整理出的实战资料,内容丰富,文档也很详细。无论做毕业设https://download.csdn.net/download/lmj3732018/89168420
6.Java项目实战训练营小马哥精讲第一套:Java项目实战训练营小马哥精讲-JavaEE单体架构+微服务架构+云原生架构+Java 开源混合架构+SOA架构教程 第二套:Spring Cloud Alibaba大型互联网领域多场景最佳实践 亿级流量平台实践-深入掌握Alibaba核心组件原理,全面提升微服务实战能力 第三套:聚焦Java性能优化 打造亿级流量秒杀系统-经典高并发高流量场景,深入各https://www.soft1188.com/javabk/7724.html
7.Java微服务资料:入门指南与实战案例集Java微服务架构是一种拆分单体应用的高灵活风格,每个微服务专注于特定功能,具备独立开发、部署与扩展的特性。这种架构显著提高了可维护性、响应速度与扩展性,并为Java开发者提供了丰富的生态系统支持,包括Spring Boot、Spring Cloud等工具。通过微服务,团队能够实现快速迭代,同时通过合理的架构设计解决服务间通信、数据一致性https://www.imooc.com/article/348114
8.分析java微服务实战.pdf分析java微服务实战.pdf,信息 书名:Java微服务实战 作者:赵计刚 :电子工业 时间:2017-10 ISBN :978-7-121-32840-4 内容简介 本书分为三部分:基础框架篇(第1~6章)、服务框架篇(第7~ 10章)、 部署篇(第11~13章),由浅入深地讲解了微服务的相关 技术。基础框架https://max.book118.com/html/2021/0714/6111200054003213.shtm
9.一步一步学SpringBoot2(微服务项目实战)中文pdf扫描版[72MB]电子书一步一步学SpringBoot2(微服务项目实战) 中文pdf扫描版[72MB] Java技术迷 广告 商业广告,理性选择 ↑ 回复“电子书”获取内部资料 下载声明 ☉ 解压密码:www.jb51.net就是本站主域名,希望大家看清楚,[分享码的获取方法]可以参考这篇文章 ☉ 推荐使用 [迅雷] 下载,使用 [WinRAR v5] 以上版本解压本站软件。 https://www.jb51.net/books/691677.html
10.黑马程序员:Java企业级实战开发《学成在线》微服务项目本课程以在线教育业务为基础,基于当前热门的 Spring Cloud 微服务技术栈进行设计,采用Nginx、SpringBoot、Spring Cloud、MyBatis-Plus、MQ、Redis、Elasticsearch等框架和中间件为基础进行开发,带领学员体验Java大型项目从需求分析、架构设计、编码、调试、测试的整个过程。 https://developer.huawei.com/consumer/cn/training/course/introduction/C101675754278061436
11.Java项目实战Java项目实战 专栏成员 837 文章 814989 阅读量 39 订阅数 全部文章(837) java(376) 2023腾讯·技术创作特训营 第二期(98) stable diffusion(94) python(85) AI绘画(78) Midjourney(77) 面试(76) 编程算法(68) spring(65) 2023腾讯·技术创作特训营 第三期(62)https://cloud.tencent.com/developer/column/79715
12.Java开发全栈知识体系架构学习(服务器微服务数据库思维导2021年从入门到精通java开发全栈知识体系架构学习总结知识脑图(学习使用于项目实战)前端、后台、服务器、Linux、性能优化、集群搭建、微服务、大数据、项目实战等内容 Java JVM sql优化 springMVC spring cloud 作者其他创作 大纲/内容一、前端技术篇 1、基础知识篇 HTML CSS 去除a标签默认样式 分支主题 https://www.processon.com/view/60504b5ff346fb348a93b4fa
13.千峰教育:Java微服务架构(SpringBoot+SpringCloud)┃┗━━155.iToken-消息队列-RabbitMQ 使用.mp4 [35.4M] ┣━━第26章 项目实战(1集) [47.8M] ┃┗━━156.iToken-任务调度-Quartz.mp4 [47.8M] ┣━━2019Java微服务架构(SpringBoot+SpringCloud)-封面图.png [134.4K] ┗━━2019Java微服务架构(SpringBoot+SpringCloud)-简介+标签.txt [195B]https://www.jianshu.com/p/cb5736da3f3f
14.2020年最新SpringBoot面试题(附答案)Spring家族是java中不可或缺的常用框架,Spring Boot作为最好的java微服务框架,是一个优秀java工程师同时,必要的技能Spring Boot面试题也是java面试必考题目。今天为大家整理了一下。2020年最新Spring Boot面试题,以下题目皆为常考经典面试题,正在为为java面试做准备,一定不能错过这篇文章。 https://www.tulingxueyuan.cn/tlzx/jsp/1180.html