Преглед на файлове

init:学习微服务项目初始化
- 通过http的形式进行远程服务调用
- 公共模块的提取
- 使用RestTemplate进行http请求的发送

yang yi преди 1 година
ревизия
4ebba39ad1
променени са 19 файла, в които са добавени 745 реда и са изтрити 0 реда
  1. 34 0
      common/pom.xml
  2. 100 0
      common/src/main/java/anyi/sapce/common/entity/Member.java
  3. 172 0
      common/src/main/java/anyi/sapce/common/entity/ResponseResult.java
  4. 35 0
      member-service-consumer/pom.xml
  5. 19 0
      member-service-consumer/src/main/java/anyi/space/memberConsumer/MemberConsumerApplication.java
  6. 20 0
      member-service-consumer/src/main/java/anyi/space/memberConsumer/config/RestTemplateConfig.java
  7. 39 0
      member-service-consumer/src/main/java/anyi/space/memberConsumer/controller/MemberConsumerController.java
  8. 16 0
      member-service-consumer/src/main/java/anyi/space/memberConsumer/service/MemberService.java
  9. 53 0
      member-service-consumer/src/main/java/anyi/space/memberConsumer/service/impl/MemberServiceIml.java
  10. 7 0
      member-service-consumer/src/main/resources/application.yaml
  11. 46 0
      member-service-provider_10000/pom.xml
  12. 18 0
      member-service-provider_10000/src/main/java/anyi/space/memberServer/MemberServiceApplication.java
  13. 36 0
      member-service-provider_10000/src/main/java/anyi/space/memberServer/controller/MemberController.java
  14. 20 0
      member-service-provider_10000/src/main/java/anyi/space/memberServer/mapper/MemberMapper.java
  15. 13 0
      member-service-provider_10000/src/main/java/anyi/space/memberServer/service/MemberService.java
  16. 22 0
      member-service-provider_10000/src/main/java/anyi/space/memberServer/service/impl/MemberServiceImpl.java
  17. 17 0
      member-service-provider_10000/src/main/resources/application.yaml
  18. 19 0
      member-service-provider_10000/src/main/resources/mapper/MemberMapper.xml
  19. 59 0
      pom.xml

+ 34 - 0
common/pom.xml

@@ -0,0 +1,34 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>distributedSystemLearn</artifactId>
+        <groupId>anyi.space</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>common</artifactId>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.mysql</groupId>
+            <artifactId>mysql-connector-j</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>

+ 100 - 0
common/src/main/java/anyi/sapce/common/entity/Member.java

@@ -0,0 +1,100 @@
+package anyi.sapce.common.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import lombok.Data;
+
+/**
+ *
+ * @TableName member
+ */
+@TableName(value ="member")
+@Data
+public class Member implements Serializable {
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 用户名
+     */
+    private String name;
+
+    /**
+     * 密码
+     */
+    private String pwd;
+
+    /**
+     * 手机号码
+     */
+    private String mobile;
+
+    /**
+     * 邮箱
+     */
+    private String email;
+
+    /**
+     * 性别
+     */
+    private Integer gender;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        Member other = (Member) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getName() == null ? other.getName() == null : this.getName().equals(other.getName()))
+            && (this.getPwd() == null ? other.getPwd() == null : this.getPwd().equals(other.getPwd()))
+            && (this.getMobile() == null ? other.getMobile() == null : this.getMobile().equals(other.getMobile()))
+            && (this.getEmail() == null ? other.getEmail() == null : this.getEmail().equals(other.getEmail()))
+            && (this.getGender() == null ? other.getGender() == null : this.getGender().equals(other.getGender()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getName() == null) ? 0 : getName().hashCode());
+        result = prime * result + ((getPwd() == null) ? 0 : getPwd().hashCode());
+        result = prime * result + ((getMobile() == null) ? 0 : getMobile().hashCode());
+        result = prime * result + ((getEmail() == null) ? 0 : getEmail().hashCode());
+        result = prime * result + ((getGender() == null) ? 0 : getGender().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", name=").append(name);
+        sb.append(", pwd=").append(pwd);
+        sb.append(", mobile=").append(mobile);
+        sb.append(", email=").append(email);
+        sb.append(", gender=").append(gender);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 172 - 0
common/src/main/java/anyi/sapce/common/entity/ResponseResult.java

@@ -0,0 +1,172 @@
+package anyi.sapce.common.entity;
+
+import java.io.Serializable;
+
+/**
+ * @Projectname: gditSpringBootLibrary
+ * @Filename: ResponseResult
+ * @Author: 杨逸
+ * @Data:2023/12/14 17:48
+ * @Description: 统一响应实体
+ */
+public class ResponseResult<T> implements Serializable {
+    private Integer code;
+    private String msg;
+    private T data;
+
+    public ResponseResult() {
+        this.code = AppHttpCodeEnum.SUCCESS.getCode();
+        this.msg = AppHttpCodeEnum.SUCCESS.getMsg();
+    }
+
+    public ResponseResult(Integer code, T data) {
+        this.code = code;
+        this.data = data;
+    }
+
+    public ResponseResult(Integer code, String msg, T data) {
+        this.code = code;
+        this.msg = msg;
+        this.data = data;
+    }
+
+    public ResponseResult(Integer code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public static ResponseResult errorResult(int code, String msg) {
+        ResponseResult result = new ResponseResult();
+        return result.error(code, msg);
+    }
+    public static ResponseResult okResult() {
+        ResponseResult result = new ResponseResult();
+        return result;
+    }
+    public static ResponseResult okResult(int code, String msg) {
+        ResponseResult result = new ResponseResult();
+        return result.ok(code, null, msg);
+    }
+    public static ResponseResult okResult(String msg,Object data) {
+        ResponseResult result = new ResponseResult();
+        return result.ok(200, data, msg);
+    }
+
+    public static ResponseResult okResult(Object data) {
+        ResponseResult result = setAppHttpCodeEnum(AppHttpCodeEnum.SUCCESS, AppHttpCodeEnum.SUCCESS.getMsg());
+        if(data!=null) {
+            result.setData(data);
+        }
+        return result;
+    }
+
+    public static ResponseResult errorResult(AppHttpCodeEnum enums){
+        return setAppHttpCodeEnum(enums,enums.getMsg());
+    }
+
+    public static ResponseResult errorResult(AppHttpCodeEnum enums, String msg){
+        return setAppHttpCodeEnum(enums,msg);
+    }
+
+    public static ResponseResult setAppHttpCodeEnum(AppHttpCodeEnum enums){
+        return okResult(enums.getCode(),enums.getMsg());
+    }
+
+    private static ResponseResult setAppHttpCodeEnum(AppHttpCodeEnum enums, String msg){
+        return okResult(enums.getCode(),msg);
+    }
+
+    public ResponseResult<?> error(Integer code, String msg) {
+        this.code = code;
+        this.msg = msg;
+        return this;
+    }
+
+    public ResponseResult<?> ok(Integer code, T data) {
+        this.code = code;
+        this.data = data;
+        return this;
+    }
+
+    public ResponseResult<?> ok(Integer code, T data, String msg) {
+        this.code = code;
+        this.data = data;
+        this.msg = msg;
+        return this;
+    }
+
+    public ResponseResult<?> ok(T data) {
+        this.data = data;
+        return this;
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public void setCode(Integer code) {
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    public T getData() {
+        return data;
+    }
+
+    public void setData(T data) {
+        this.data = data;
+    }
+
+    /**
+     * 内部类,响应状态枚举
+     */
+    public enum AppHttpCodeEnum {
+        // 成功
+        SUCCESS(200,"操作成功"),
+        // 登录
+        NEED_LOGIN(401,"需要登录后操作"),
+        NO_OPERATOR_AUTH(403,"无权限操作"),
+        FILE_NOT_NULL(410,"文件不能为空"),
+        FILE_TYPE_ERROR(411,"文件类型错误"),
+        SYSTEM_ERROR(500,"出现错误"),
+        USERNAME_EXIST(501,"用户名已存在"),
+        REQUIRE_USERNAME(502, "必需填写用户名"),
+        LOGIN_ERROR(503,"用户名或密码错误"),
+        USER_NOT_NULL(510,"用户不能为空"),
+        PASSWORD_NOT_NULL(511,"密码不能为空"),
+        PASSWORD_ERROR(514, "密码错误"),
+        USER_NOT_EXIST(515, "用户不存在"),
+        PASSWORD_SAME(516, "新密码不能与旧密码一样"),
+        VERIFY_CODE_ERROR(517, "验证码错误"),
+        USER_STATE_ERROR(518, "用户状态值不正确"),
+        FILE_ERROR(528, "文件读取错误"),
+        FILE_IS_EMPTY_ERROR(529, "文件内容不能为空"),
+        FILE_SIZE_ERROR(412, "文件过大"),
+        RATE_LIMIT_ERROR(429, "请求过于频繁"),;
+
+        private int code;
+        private String msg;
+
+        AppHttpCodeEnum(int code, String errorMessage){
+            this.code = code;
+            this.msg = errorMessage;
+        }
+
+        public int getCode() {
+            return code;
+        }
+
+        public String getMsg() {
+            return msg;
+        }
+    }
+}
+
+

+ 35 - 0
member-service-consumer/pom.xml

@@ -0,0 +1,35 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>distributedSystemLearn</artifactId>
+        <groupId>anyi.space</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>member-service-consumer</artifactId>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>anyi.space</groupId>
+            <artifactId>common</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+    </dependencies>
+
+</project>

+ 19 - 0
member-service-consumer/src/main/java/anyi/space/memberConsumer/MemberConsumerApplication.java

@@ -0,0 +1,19 @@
+package anyi.space.memberConsumer;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+
+/**
+ * @ProjectName: distributedSystemLearn
+ * @FileName: MemberConsumerApplication
+ * @Author: 杨逸
+ * @Data:2025/4/13 20:05
+ * @Description:
+ */
+@SpringBootApplication(exclude= DataSourceAutoConfiguration.class)
+public class MemberConsumerApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(MemberConsumerApplication.class,args);
+    }
+}

+ 20 - 0
member-service-consumer/src/main/java/anyi/space/memberConsumer/config/RestTemplateConfig.java

@@ -0,0 +1,20 @@
+package anyi.space.memberConsumer.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * @ProjectName: distributedSystemLearn
+ * @FileName: RestTemplateConfig
+ * @Author: 杨逸
+ * @Data:2025/4/13 20:06
+ * @Description:
+ */
+@Configuration
+public class RestTemplateConfig {
+    @Bean
+    public RestTemplate getRestTemplate(){
+        return new RestTemplate();
+    }
+}

+ 39 - 0
member-service-consumer/src/main/java/anyi/space/memberConsumer/controller/MemberConsumerController.java

@@ -0,0 +1,39 @@
+package anyi.space.memberConsumer.controller;
+
+import anyi.sapce.common.entity.Member;
+import anyi.sapce.common.entity.ResponseResult;
+import anyi.space.memberConsumer.service.MemberService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.util.DigestUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.nio.charset.StandardCharsets;
+
+/**
+ * @ProjectName: distributedSystemLearn
+ * @FileName: MemberConsumerController
+ * @Author: 杨逸
+ * @Data:2025/4/13 20:07
+ * @Description:
+ */
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/member")
+public class MemberConsumerController {
+    private final MemberService memberService;
+    @GetMapping
+    public ResponseResult<Member> getMemberById(Long id){
+        Member member = memberService.getById(id);
+        return ResponseResult.okResult(member);
+    }
+    @PostMapping
+    public ResponseResult addMember(Member member){
+        String hex = DigestUtils.md5DigestAsHex(member.getPwd().getBytes(StandardCharsets.UTF_8));
+        member.setPwd(hex);
+        boolean save = memberService.save(member);
+        return ResponseResult.okResult(save);
+    }
+}

+ 16 - 0
member-service-consumer/src/main/java/anyi/space/memberConsumer/service/MemberService.java

@@ -0,0 +1,16 @@
+package anyi.space.memberConsumer.service;
+
+import anyi.sapce.common.entity.Member;
+
+/**
+ * @ProjectName: distributedSystemLearn
+ * @FileName: MemberService
+ * @Author: 杨逸
+ * @Data:2025/4/13 20:10
+ * @Description:
+ */
+public interface MemberService {
+    Member getById(Long id);
+
+    boolean save(Member member);
+}

+ 53 - 0
member-service-consumer/src/main/java/anyi/space/memberConsumer/service/impl/MemberServiceIml.java

@@ -0,0 +1,53 @@
+package anyi.space.memberConsumer.service.impl;
+
+import anyi.sapce.common.entity.Member;
+import anyi.sapce.common.entity.ResponseResult;
+import anyi.space.memberConsumer.service.MemberService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.Map;
+
+/**
+ * @ProjectName: distributedSystemLearn
+ * @FileName: MemberServiceIml
+ * @Author: 杨逸
+ * @Data:2025/4/13 20:10
+ * @Description:
+ */
+@RequiredArgsConstructor
+@Service
+public class MemberServiceIml implements MemberService {
+    private final RestTemplate restTemplate;
+    @Override
+    public Member getById(Long id) {
+        /**
+         * 通过RestTemplate调用远程服务
+         */
+        ResponseEntity<ResponseResult> resultResponseEntity = restTemplate.getForEntity("http://localhost:10001/member-provider/member?id="+id, ResponseResult.class);
+        Object data = resultResponseEntity.getBody().getData();
+        //映射请求结果
+        Map map = (Map) data;
+        Member member = new Member();
+        id = Long.valueOf(map.get("id") + "");
+        member.setId(id);
+        member.setName((String) map.get("name"));
+        member.setPwd((String) map.get("pwd"));
+        member.setEmail((String) map.get("email"));
+        member.setGender((int)map.get("gender"));
+        return member;
+    }
+
+    @Override
+    public boolean save(Member member) {
+        //直接传递参数,是使用json的格式提交数据
+        ResponseEntity<ResponseResult> responseResultResponseEntity = restTemplate.postForEntity("http://localhost:10001/member-provider/member", member, ResponseResult.class);
+        //HttpEntity<String> stringHttpEntity = new HttpEntity<>();
+        Object data = responseResultResponseEntity.getBody().getData();
+        boolean flag = (boolean) data;
+        return flag;
+    }
+}

+ 7 - 0
member-service-consumer/src/main/resources/application.yaml

@@ -0,0 +1,7 @@
+server:
+  port: 80
+  servlet:
+    context-path: /member-consumer
+spring:
+  application:
+    name: member-consumer

+ 46 - 0
member-service-provider_10000/pom.xml

@@ -0,0 +1,46 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>distributedSystemLearn</artifactId>
+        <groupId>anyi.space</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>member-service-provider_10000</artifactId>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.mysql</groupId>
+            <artifactId>mysql-connector-j</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>anyi.space</groupId>
+            <artifactId>common</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+
+</project>

+ 18 - 0
member-service-provider_10000/src/main/java/anyi/space/memberServer/MemberServiceApplication.java

@@ -0,0 +1,18 @@
+package anyi.space.memberServer;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * @ProjectName: distributedSystemLearn
+ * @FileName: MerberServiceApplication
+ * @Author: 杨逸
+ * @Data:2025/4/13 18:53
+ * @Description:
+ */
+@SpringBootApplication(scanBasePackages = {"anyi.sapce.common","anyi.space.memberServer"})
+public class MemberServiceApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(MemberServiceApplication.class,args);
+    }
+}

+ 36 - 0
member-service-provider_10000/src/main/java/anyi/space/memberServer/controller/MemberController.java

@@ -0,0 +1,36 @@
+package anyi.space.memberServer.controller;
+
+import anyi.sapce.common.entity.Member;
+import anyi.sapce.common.entity.ResponseResult;
+import anyi.space.memberServer.service.MemberService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.util.DigestUtils;
+import org.springframework.web.bind.annotation.*;
+
+import java.nio.charset.StandardCharsets;
+
+/**
+ * @ProjectName: distributedSystemLearn
+ * @FileName: MemberController
+ * @Author: 杨逸
+ * @Data:2025/4/13 18:55
+ * @Description:
+ */
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/member")
+public class MemberController {
+    private final MemberService memberService;
+    @GetMapping
+    public ResponseResult<Member> getMemberById(Integer id){
+        Member member = memberService.getById(id);
+        return ResponseResult.okResult(member);
+    }
+    @PostMapping
+    public ResponseResult addMember(@RequestBody Member member){
+        String hex = DigestUtils.md5DigestAsHex(member.getPwd().getBytes(StandardCharsets.UTF_8));
+        member.setPwd(hex);
+        boolean save = memberService.save(member);
+        return ResponseResult.okResult(save);
+    }
+}

+ 20 - 0
member-service-provider_10000/src/main/java/anyi/space/memberServer/mapper/MemberMapper.java

@@ -0,0 +1,20 @@
+package anyi.space.memberServer.mapper;
+
+import anyi.sapce.common.entity.Member;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author 杨逸
+* @description 针对表【member】的数据库操作Mapper
+* @createDate 2025-04-13 18:44:39
+* @Entity anyi.space.merberServer.entity.Member
+*/
+@Mapper
+public interface MemberMapper extends BaseMapper<Member> {
+
+}
+
+
+
+

+ 13 - 0
member-service-provider_10000/src/main/java/anyi/space/memberServer/service/MemberService.java

@@ -0,0 +1,13 @@
+package anyi.space.memberServer.service;
+
+import anyi.sapce.common.entity.Member;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+* @author 杨逸
+* @description 针对表【member】的数据库操作Service
+* @createDate 2025-04-13 18:44:39
+*/
+public interface MemberService extends IService<Member> {
+
+}

+ 22 - 0
member-service-provider_10000/src/main/java/anyi/space/memberServer/service/impl/MemberServiceImpl.java

@@ -0,0 +1,22 @@
+package anyi.space.memberServer.service.impl;
+
+import anyi.sapce.common.entity.Member;
+import anyi.space.memberServer.mapper.MemberMapper;
+import anyi.space.memberServer.service.MemberService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+* @author 杨逸
+* @description 针对表【member】的数据库操作Service实现
+* @createDate 2025-04-13 18:44:39
+*/
+@Service
+public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member>
+    implements MemberService{
+
+}
+
+
+
+

+ 17 - 0
member-service-provider_10000/src/main/resources/application.yaml

@@ -0,0 +1,17 @@
+server:
+  application:
+    name: member-service-provider
+  port: 10001
+  servlet:
+    context-path: /member-provider
+spring:
+  datasource:
+    type: com.alibaba.druid.pool.DruidDataSource
+    druid:
+      url: jdbc:mysql://localhost:3306/spring_cloud?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
+      username: root
+      password: hsp
+      driver-class-name: com.mysql.jdbc.Driver
+mybatis-plus:
+  configuration:
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

+ 19 - 0
member-service-provider_10000/src/main/resources/mapper/MemberMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="anyi.space.memberServer.mapper.MemberMapper">
+    <resultMap id="BaseResultMap" type="anyi.sapce.common.entity.Member">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="name" column="NAME" jdbcType="VARCHAR"/>
+            <result property="pwd" column="pwd" jdbcType="CHAR"/>
+            <result property="mobile" column="mobile" jdbcType="VARCHAR"/>
+            <result property="email" column="email" jdbcType="VARCHAR"/>
+            <result property="gender" column="gender" jdbcType="TINYINT"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,NAME,pwd,
+        mobile,email,gender
+    </sql>
+</mapper>

+ 59 - 0
pom.xml

@@ -0,0 +1,59 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>anyi.space</groupId>
+    <artifactId>distributedSystemLearn</artifactId>
+    <version>1.0-SNAPSHOT</version>
+    <modules>
+        <module>member-service-provider_10000</module>
+        <module>member-service-consumer</module>
+        <module>common</module>
+    </modules>
+    <packaging>pom</packaging>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+        <spring.boot.version>2.7.17</spring.boot.version>
+        <mysql.connector.version>8.3.0</mysql.connector.version>
+        <log4j.version>1.2.17</log4j.version>
+        <mybatis.plus.version>3.4.3.4</mybatis.plus.version>
+        <druid.version>1.2.16</druid.version>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-starter-parent</artifactId>
+                <version>${spring.boot.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>com.mysql</groupId>
+                <artifactId>mysql-connector-j</artifactId>
+                <version>${mysql.connector.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>log4j</groupId>
+                <artifactId>log4j</artifactId>
+                <version>${log4j.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.baomidou</groupId>
+                <artifactId>mybatis-plus-boot-starter</artifactId>
+                <version>${mybatis.plus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.alibaba</groupId>
+                <artifactId>druid-spring-boot-starter</artifactId>
+                <version>${druid.version}</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+</project>