简单步骤:
本期需要工具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. 二级目录
- mt-sp-service-api提供公共接口 没有实现业务代码
- mt-sp-service-impl 公共接口的实现层
- 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重复代码 直接可以继承
变