SpringCloud整合Mybatis做增删改查
一、springCloud简单介绍
springCloud是一套微服务解决方案,springCloud依赖于springBoot。他提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。最重要的是,跟spring boot框架一起使用的话,会让你开发微服务架构的云服务非常好的方便。 SpringBoot旨在简化创建产品级的 Spring 应用和服务,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用微服务功能。
springCloud常用的六大组件
服务发现 —— Eureka
服务调用 —— Feign
服务熔断 —— Hystrix
负载均衡 —— Ribbon
服务网关 —— Zuul
分布式配置— Config
springCloud与dubbo的区别
Dubbo只实现了服务治理,而springCloud下面有N多个子项目(可能还会新增)分别覆盖了微服务架构下的方方面面。
依上说的,Dubbo就像是SpringCloud下的一个子项目,但是也不是说springCloud中有的功能组件Dubbo就不能实现,只是Dubbo它自身不提供,需要另外整合来实现功能。
举个栗子,Dubbo就像是一太组装机,可以自由组装使用,而springCloud就像是一个名牌机器,自身高配齐全,也不能说Dubbo不好,它在高手手中使用起来还是好用的。
二、话不多说,上代码
首先创建一个springBoot项目,取名eureka
这里注意springCloud和springBoot版本要对应,这里用的是springBoot2.2.1.RELEASE,springCloud Hoxton.RELEASE,
eureka-server版本为2.2.0
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.fz</groupId>
<artifactId>eureka</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eureka</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.RELEASE</spring-cloud.version>
<version>2.2.0.RELEASE</version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${
spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
这个地方容易踩坑,尽量跟上面版本保持一致
Resources下创建application.yml
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka #设置服务注册中心地址
register-with-eureka: false #IP指定是服务器还是本机ip
server:
enable-self-preservation: false #是否将自己注册到服务中心
fetch-registry: false #是否开启服务发现
spring:
application:
name: eureka #服务名
server:
port: 8761 #端口号
springBoot启动类上加上注解 @EnableEurekaServer,启动项目
访问 http://localhost:8761
出现如下,就已经创建成功了
三、创建服务提供者 provider-one
创建数据库cloud,执行sql
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT