8_real_01项目框架

简单步骤:

本期需要工具nacos

可到博主另外文章直接获取安装包链接:
mac使用nacos
或者 docker下载nacos
docker下载nacos

Nacos端口为8848
http://127.0.0.1:8848/nacos/#/login
账号密码nacos naocs
在这里插入图片描述

1. 创建父项目

mt-sp-parent

com.mayikt

父pom

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.11.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <boot-version>2.1.11.RELEASE</boot-version>
    <mybatis.starter.version>2.0.0</mybatis.starter.version>
    <mapper.starter.version>2.1.5</mapper.starter.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    <!--  springboot 整合web组件-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>


    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
        <version>2.1.1.RELEASE</version>
    </dependency>

</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Greenwich.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>${boot-version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.1.1.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

    </dependencies>
</dependencyManagement>

2. 二级目录

  1. mt-sp-service-api提供公共接口 没有实现业务代码
  2. mt-sp-service-impl 公共接口的实现层
  3. mt-sp-service-base 分布式基础设施

3. 1 三级目录 微信api

mt-sp-service-api-weixin
com.mayikt.api.weixin
WeChatService

package com.mayikt.api.weixin
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
public interface WeChatService {
    /**
     * rpc远程调用过程中feign传递 a参数
     * @param a
     * @return
     */
    @GetMapping("/getWeChat")
    String getWeChat(@RequestParam("a") Integer a);
}

3. 2 三级目录 微信impl

mt-sp-service-weixin 微信服务接口实 现 9090 9091 9092

com.mayikt.api.impl.weixin

package com.mayikt.api.impl.weixin;
import com.mayikt.api.weixin.WeChatService;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class WeChatServiceImpl implements WeChatService {
    @Override
    public String getWeChat(Integer a) {
        return "每特教育微信服务a:"+a;
    }
}

创建启动类:

package com.mayikt.api.impl.weixin;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class AppWeixin {
    public static void main(String[] args) {
        // com.mayikt.api.impl.weixin @SpringBootApplication AppWeixin
        // com.mayikt.api.base
        SpringApplication.run(AppWeixin.class);
    }
}

创建yml

spring:
  application:
    ###服务的名称
    name: mayikt-weixin
  cloud:
    nacos:
      discovery:
        ###nacos注册地址
        server-addr: 127.0.0.1:8848
server:
  port: 9000


接口访问
http://127.0.0.1:9000/getWeChat?a=1

在这里插入图片描述

4.1 三级目录 会员api

mt-sp-service-api-member

包:
com.mayikt.api.member

package com.mayikt.api.member;

import org.springframework.web.bind.annotation.GetMapping;

public interface MemberService {

    @GetMapping("memberToWeiXin")
    String memberToWeiXin(Integer a);
    
}

4.2 三级目录 会员impl 调用微信

mt-sp-service-member
包:
com.mayikt.api.impl.member

feign

package com.mayikt.api.impl.feign;

import com.mayikt.api.weixin.WeChatService;
import org.springframework.cloud.openfeign.FeignClient;

@FeignClient("mayikt-weixin")
public interface WeChatServiceFeign extends WeChatService {
//    @GetMapping("/getWeChat")
//    String getWeChat(@RequestParam("a") Integer a);
}

MemberServiceImpl

package com.mayikt.api.impl.member;
import com.mayikt.api.base.BaseApiService;
import com.mayikt.api.base.BaseResponse;
import com.mayikt.api.impl.feign.WeChatServiceFeign;
import com.mayikt.api.member.MemberService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MemberServiceImpl  extends BaseApiService<String> implements MemberService {
    @Autowired
    private WeChatServiceFeign weChatServiceFeign;
    @Override
    public String memberToWeiXin(Integer a) {
        return weChatServiceFeign.getWeChat(a);
    }

    @Override
    public BaseResponse<String> addMember(String userName, String pwd,Integer age) {
        if(StringUtils.isEmpty(userName)){
            return setResultError("userName is null error");
        }
        int j= 1/age;
        return setResultSuccess("success");
    }


}

AppMember

package com.mayikt.api.impl;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;

@EnableFeignClients
@SpringBootApplication
public class AppMember {
    public static void main(String[] args) {
        // com.mayikt.api.impl.member SpringBootApplication
        // com.mayikt.api.impl.feign
        // com.mayikt.api.impl SpringBootApplication

        // com.mayikt.api.impl-- AppMember SpringBootApplication
        //com.mayikt.api.base
        //    com.mayikt.api-- AppMember SpringBootApplication
        SpringApplication.run(AppMember.class);
    }
}

application.yml

spring:
spring:
  application:
    ###服务的名称
    name: mayikt-member
  cloud:
    nacos:
      discovery:
        ###nacos注册地址
        server-addr: 127.0.0.1:8848
server:
  port: 7000

注意:启动类上加上@EnableFeignClients,否则会报如下错误:
Field weChatServiceFeign in com.mayikt.api.impl.member.MemberServiceImpl required a bean of type ‘com.mayikt.api.impl.feign.WeChatServiceFeign’ that could not be found.

主意:

必须先启动好nacos,成功启动微信服务,才可访问成功。
接口访问:
http://127.0.0.1:7000/memberToWeiXin?a=1
在这里插入图片描述
会员服务成功调用微信服务,本期任务完成。

详细步骤*********************

1. 创建父项目mt-sp-parent

在这里插入图片描述
在这里插入图片描述

删掉src文件包

2. 创建二子mt-sp-service-api

在这里插入图片描述
在这里插入图片描述

删掉src文件包

3. 创建二子mt-sp-service-impl

在这里插入图片描述
在这里插入图片描述

效果:

在这里插入图片描述

4. 子api下三级mt-sp-service-api-weixin

在这里插入图片描述

在这里插入图片描述

![

5.包名格式:com.mayikt.api.weixin

在这里插入图片描述

6. pom

在这里插入图片描述
在这里插入图片描述

此处直接粘贴

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.11.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <boot-version>2.1.11.RELEASE</boot-version>
    <mybatis.starter.version>2.0.0</mybatis.starter.version>
    <mapper.starter.version>2.1.5</mapper.starter.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    <!--  springboot 整合web组件-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>


    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
        <version>2.1.1.RELEASE</version>
    </dependency>

</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Greenwich.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>${boot-version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.1.1.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

    </dependencies>
</dependencyManagement>

7. WeChatService mt-sp-service-api-weixin–接口层

在这里插入图片描述
在这里插入图片描述

8.子impl下mt-sp-service-weixin实现层

在这里插入图片描述
在这里插入图片描述

9.WeChatServiceImpl mt-sp-service-weixin

idea会自动引入maven
在这里插入图片描述
在这里插入图片描述

10.微信 impl启动类

在这里插入图片描述

启动累默认范围:
com.mayikt.api.impl.weixin
在这里插入图片描述

11. impl application.yml

spring:
  application:
    ###服务的名称
    name: mayikt-weixin
  cloud:
    nacos:
      discovery:
        ###nacos注册地址
        server-addr: 127.0.0.1:8848
server:
  port: 9000

12. api下的三级会员 mt-sp-service-api-member

在这里插入图片描述
在这里插入图片描述

13. MemberService com.mayikt.api.impl.member

在这里插入图片描述

public interface MemberService {

    @GetMapping("memberToWeiXin")
    String memberToWeiXin(Integer a);
}

14. MemberServiceImpl mt-sp-service-member实现层

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

15. feign重复代码 直接可以继承

在这里插入图片描述


在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值