Spring boot/cloud 基础文档

 Spring boot/cloud 基础文档

传统JAVA WEB应用是单一的一个工程体系,多个模块之间互相调用形成一个系统,各个模块DATA操作同一数据库不同表,系统部署在一台服务机器上运行。

使用分布式微服务之后在大致情况

Spring boot/cloud 基础文档

微服务设计原则

单一职责原则

服务自治原则

轻量级通信原则

接口明确原则

微服务具备的特性

1. 每个微服务可独立运行在自己的进程里;

2. 一系列独立运行的微服务共同构建起了整个系统;

3. 每个服务为独立的业务开发,一个微服务一般完成某个特定的功能,比如:订单管理、用户管理等;

4. 微服务之间通过一些轻量的通信机制进行通信,例如通过REST API或者RPC的方式进行调用。

 

首先我们先建立一个spring boot项目,如果建立springboot项目可以通过eclipseide工具快速构建,也可以通过start.spring.io在线快速构建。

Spring boot/cloud 基础文档

Spring boot/cloud 基础文档

 

可以直接run-->spring boot app运行该类,默认端口为8080

Spring boot/cloud 基础文档

之后我们再新建一个controll.class内容为:

Spring boot/cloud 基础文档

具体注解含义本文档不做介绍,请自行了解,请求效果图:

Spring boot/cloud 基础文档

默认端口8080,自带8.5.11版tomcat

Spring boot/cloud 基础文档

接下来我们做操作数据库的spring boot应用,可以整合jpa规则orm框架(hibernate)或者mybatis,这里我们使用mybatis,原因是适用于大型系统的开发需求,灵活多变的sql自定义语句。

 Spring boot/cloud 基础文档

红框内的看着是不是眼熟,这和我们以前的ssm的文档结构是相似的,这里我就不说controller,dao,domian,service,mapper里面放的都是什么文件了,有过开发经历的人都知道,不知道百度~~~我们先看看哪些是有变化的。

Pom.xml 添加

Spring boot/cloud 基础文档

这样就整合国mybatis和可以操作数据库了,是不是很简单,不过还有一步,一会说

Spring boot/cloud 基础文档

Service实现类,@service注解没有指定名称,不加的话,默认别名就是当前类名,但是首字母小写 ,相当于<bean id=”axxx” class=”xxx.xxxx.Axxx.class”></bean>

Spring boot/cloud 基础文档

@restController  == @Controller + @ResponseBody, springboot的注解)

再看下dao interfacemapper吧,注意看<select id> dao interface method name

Spring boot/cloud 基础文档

Mapper.xml

Spring boot/cloud 基础文档

最后我们来看这个文件吧

Spring boot/cloud 基础文档

Spring boot/cloud 基础文档

Spring boot/cloud 基础文档

红框内的内容可以不添加,但是待会服务注册会用到,就先加上,不影响使用。

之后对Application.class  run-->spring boot app

Spring boot/cloud 基础文档

这样一个spring bootmybatis应用就简单的完成了。

 

 

接下来我们要做微服务的应用注册与发现了,本案例使用window系统操作,暂不涉及linux多服务器的配置部署。先简单了解其工作流程,当下比较流行的是dubbo+zookeeper,在spring boot 基础之上有一个spring cloud微服务框架,所以本次使用spring cloud + erueka(服务注册发现中心) + ribbon(负载均衡)

Spring boot/cloud 基础文档

Eureka服务发现客户端

Spring boot/cloud 基础文档

spring-cloud-starter-eureka-server   客户端服务

spring-boot-starter-security                     安全认证(用做登录帐号密码,看需求添加,可以不加)

Spring boot/cloud 基础文档

Spring boot/cloud 基础文档

启动上图代码文件run-->spring boot app,浏览器输入http://localhost:8761/,如果有加security,就是我上图这样的,会要求输入用户名和密码,分别为  user    user

 Spring boot/cloud 基础文档

到此,服务发现客户端安装完毕,结下来我们来做服务注册,就拿我们刚刚的spring boot mybatis工程做改造

Spring boot/cloud 基础文档

3个文件均有改动

Pom.xml

Spring boot/cloud 基础文档

Application.yml 追加

Spring boot/cloud 基础文档

Application.java

Spring boot/cloud 基础文档

现在启动 Application.java然后浏览器输入http://localhost:8761/

Spring boot/cloud 基础文档

服务提供都已经开发完毕,接下来我们来做服务消费者。

Spring boot/cloud 基础文档

红框是我们要关注的内容

Pom.xml

Spring boot/cloud 基础文档

Spring boot/cloud 基础文档

Spring boot/cloud 基础文档

Spring boot/cloud 基础文档

接下来我们来看使用情况,因为用了负载均衡,为了有比较效果,我会修改端口号启动2个同服务但不同端口在工程,

Spring boot/cloud 基础文档

运行ConsumerMovieRibbonApplication.java  run-->spring boot app

Spring boot/cloud 基础文档

该为服务消费者,在浏览器中频繁刷新地址http://localhost:8010/movie/city/?cityName=gz

Spring boot/cloud 基础文档

可以看到是随机负载到不同的端口服务提供者上,至此,spring boot 与spring cloud的微服务入门文档完结,不懂的配置和注解的使用可自行goole或baidu


相关文章:

  • 2022-01-09
  • 2021-09-17
  • 2021-11-13
  • 2021-09-01
  • 2021-10-05
  • 2021-03-30
猜你喜欢
  • 2021-08-20
  • 2021-04-18
  • 2022-12-23
  • 2021-12-27
  • 2021-10-01
  • 2021-05-17
  • 2021-08-22
相关资源
相似解决方案