springcloud使用Eureka和Feign消费

xiaoxiao2025-07-13  17

前言

网上的案例大部分都是hi~hi name什么的,博主实在是感觉太无聊了,毕竟最终我们都是得为底层数据库服务的。于是花了一上午时间写了个springcloud+mysql+mybatis-plus集成的简单例子(mybatis-plus纯属装逼的,同学们也可以使用mybatis)。

目录结构

说明

eureka-base被我当做是注册中心里面什么都没有,只是当做注册仓库一样,其他服务都注册在这里面。端口是8080eureka-server服务提供层,集成mybatis-plus,端口8081,服务名eureka-server-1eureka-client服务消费层,端口8082,服务名eureka-client-2feign-client服务消费层。服务名:feign-consumer

eureka-base配置

pom.xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Finchley.SR1</spring-cloud.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</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </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> application.yml server: port: 8080 eureka: instance: hostname: localhost client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ 只有一个启动类EurekaBaseApplication.java @SpringBootApplication @EnableEurekaServer public class EurekaBaseApplication { public static void main(String[] args) { SpringApplication.run(EurekaBaseApplication.class, args); } }

eureka-server配置

pom.xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Finchley.SR1</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0-RC2</version> </dependency> <!-- 模板引擎 --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- springboot整合mybatis(核心就这一个) --> <!-- 注意顺序,这个一定要放在最下面 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </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> application.yml server: port: 8081 # 8081注册到8080端口服务 eureka: instance: hostname: localhost client: serviceUrl: defaultZone: http://localhost:8080/eureka/ spring: application: name: eureka-server-1 datasource: hikari: username: root password: root driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/boot?useUnicode=true&amp;characterEncoding=utf8;allowMultiQueries=true&&useSSL=true mybatis-plus: # 如果是放在src/main/java目录下 classpath:/com/yourpackage/*/mapper/*Mapper.xml # 如果是放在resource目录 classpath:/mapper/*Mapper.xml mapper-locations: classpath:/com/cloud/eureka/mapper/*Mapper.xml #实体扫描,多个package用逗号或者分号分隔 typeAliasesPackage: com.cloud.eureka.entity global-config: #mp2.3+ 全局表前缀 mp_ #table-prefix: mp_ #刷新mapper 调试神器 #refresh-mapper: true #数据库大写下划线转换 #capital-mode: true #逻辑删除配置(下面3个配置) db-config: logic-delete-value: 1 logic-not-delete-value: 0 #驼峰下划线转换 column-underline: true #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断" field-strategy: not_empty #主键类型 0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID"; id-type: id_worker configuration: #配置返回数据库(column下划线命名&&返回java实体是驼峰命名),自动匹配无需as(没开启这个,SQL需要写as: select user_id as userId) map-underscore-to-camel-case: true cache-enabled: false #配置JdbcTypeForNull, oracle数据库必须配置 jdbc-type-for-null: 'null' log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 启动类 @SpringBootApplication @EnableEurekaClient public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }

代码就不一一贴出来了 github代码

转载请注明原文地址: https://www.6miu.com/read-5033006.html

最新回复(0)