SpringBoot 微服务

  • 为什么要学习SpringBoot
  • 微服务
  • 微服务的优点
  • 微服务的缺点
  • 我的第一个SpringBoot项目


为什么要学习SpringBoot

  1. 简化工作
    使用过Spring的都知道,Spring虽然能够使开发者在开发程序的时候得到帮助,但是繁琐的配置文件让人恼火;而SpringBoot则是在Spring的基础上摒弃掉了繁杂的配置文件,为开发者提供了默认的配置,不需要开发人员再定义样板化的配置。

具体简化的方面:

  • 依赖简化:SpringBoot自带的starter中提供了可以快捷使用的依赖
  • 配置简化:在配置方法中,SpringBoot为开发人员提供了一些默认的配置,比如端口号为8080等等

微服务

微服务其实就是讲一个单体的应用根据业务功能拆分成多个服务,使得业务代码之间不在耦合。

举个简单的例子,银行有很多业务服务,比如养老金服务,贷款服务,国债,存钱,取钱等等,如果说这些业务没有微服务化的话就会出现这样的情况:一旦一个业务出现问题,那么其他业务就会停止服务,整个银行业务就会崩塌;
如果采用微服务的形式进行工作,那么当贷款服务出现问题的时候,不会波及到存钱、取钱等等操作;
由此可见,微服务将业务分割开来了

微服务的优点

  • 服务解耦:单体应用变成多服务应用,服务与服务之间通过HTTP协议或者其他协议进行网络通信
  • 技术选型广泛:对弈同一应用的不同服务不再局限于相同的技术栈,开发不同服务的小组可以根据自己的情况选择不同的开发语言
  • 服务并行开发:由于服务已经分隔开了,所以服务与服务之间不会产生依赖,各个服务可以同时进行开发,提高开发效率
  • 独立部署:由于每个服务都是独立的项目,所以开发完成之后,都可以直接进行部署
  • 故障隔离:一个服务出现问题,其他服务能够正常运行
  • 单一职责:不同服务的开发团队只需要关心本组的开发任务,不需要再浪费之间熟悉其他业务之后再开发

微服务的缺点

  • 维护项目成本增加:由于服务是拆分开来的,所以运维人员就要花费大量的尽力来管理这些应用;以往运维人员只需要保证一个服务高效运行即可,而拆分后需要同时保证多个服务高效运行,这样的项目维护成本无疑是大大增加
  • 服务间的接口问题:由于服务与服务之间的是使用接口进行相互调用的,当接口出现问题或者出现更改参数等等操作时,那么调用这个接口的所有服务都需要更改,
  • 分布式事务的数据库一致问题:由于开发服务的团队不一样,那么可能不同服务所使用的的数据库也不一样,那么要保证数据库之间的数据一致性的问题就需要得到解决
  • 网络复杂性:由于各个服务间使用接口,因此系统间需要考虑很多网络延迟等客观因素来保证服务间的正常运转
  • 测试复杂性:在测试方面,服务的接口调用、服务间的测试都需要一套玩着完整的测试方案

我的第一个SpringBoot项目

1、使用IDEA新建项目,然后点击 Spring Initializr ,选择对应的 jdk(最低1.8),点击 Next

springboot项目多个html如何设置首页 springboot项目页面放在哪里_微服务


2、配置项目信息

springboot项目多个html如何设置首页 springboot项目页面放在哪里_配置文件_02


3、配置 SpringBoot版本以及默认引入组件

点击pom.xml文件,加入web依赖

springboot项目多个html如何设置首页 springboot项目页面放在哪里_数据库_03


4、在org.example下创建Controller包,在其下创建一个HelloController类,并且加上@RestController注解,并且书写hello方法,返回一个“Hello,This is my first Spring-Boot Project !”,注意:要在hello方法上加上@GetMapping("/hello")注解;解析:hello方法返回的就是在web页面上出现的内容,而@GetMapping("/hello")是指在访问网页请求时Get请求,访问路径为"localhost:8080/hello"

springboot项目多个html如何设置首页 springboot项目页面放在哪里_spring boot_04


执行到这里会发现注解是红名,说明出现错误,出现错误的原因是没有加入lombok依赖,只要在pom.xml加入就可以了

springboot项目多个html如何设置首页 springboot项目页面放在哪里_微服务_05


5、运行项目启动类,启动项目,然后在网页上输入url访问

url:localhost:8080/hello在这里小编遇到了问题,启动类运行之后出现了以下页面

springboot项目多个html如何设置首页 springboot项目页面放在哪里_微服务_06


这个问题出现的主要原因是Controller包不在启动类包中或者和启动类不在同一个包中,启动类扫描不到Controller包下的HelloController类,所以出现了404的标识;

解决的办法就是将启动类移到org.example下

404:404表示查找不到该url资源
启动类扫描:启动类扫描的范围为启动类所在的包以及启动类的子包

springboot项目多个html如何设置首页 springboot项目页面放在哪里_微服务_07


问题解决之后重新运行启动类,再次访问网页,发现成功!

springboot项目多个html如何设置首页 springboot项目页面放在哪里_配置文件_08


到此为止,一个简单的Spring-Boot项目就算是完成了,谢谢阅览!!