您现在的位置是:首页 > 文章详情

从零搭建一个SpringCloud项目之Feign搭建

日期:2020-04-04点击:334

从零搭建一个SpringCloud项目之Feign搭建

工程简述

目的:实现trade服务通过feign调用user服务的功能。因为trade服务会用到user里的一些类和接口,所以抽出了其他服务需要的东西到user-api工程。避免trade直接依赖user导致依赖多余的东西。

一、创建User接口工程user-api
新建一个module,取名为study-user-api
引入pom文件

 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> </dependencies>

创建一个User实体类
编写一个UserApi接口,value里的study-user对应后面user实现工程的spring.application.name的值
@FeignClient(value = "study-user")
public interface UserApi {

@RequestMapping(value = "/getUserById",method = RequestMethod.GET) User getUserById(Integer id);

}

二、创建User实现工程
创建一个module用于对user接口提供实现,项目名为study-user
加入pom依赖

 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 本地依赖--> <dependency> <artifactId>study-user-api</artifactId> <groupId>com.mmc</groupId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies>

配置文件
server.port=8003

注册到eureka服务端的微服务名称

spring.application.name=study-user

注册到eureka服务端的地址

eureka.client.service-url.defaultZone=http://localhost:9000/eureka/

security.login.username=root
security.login.pass=123456789
eureka.client.service-url.defaultZone=http://${security.login.username}:${security.login.pass}@localhost:9000/eureka/

点击具体的微服务,是否显示ip

eureka.instance.prefer-ip-address=true
eureka.instance.instance-id=study-user-8003
写user接口实现,一个UserController
@RestController
@RequestMapping("/user")
public class UserController {

@RequestMapping("/getUserById") public User getUserById(Integer id){ User user = new User(); user.setId(1); user.setName("小明"); return user; }

}
三、创建交易工程
新建一个module,项目名为study-trade
引入pom依赖

 <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <!-- 本地依赖--> <dependency> <artifactId>study-user-api</artifactId> <groupId>com.mmc</groupId> <version>1.0-SNAPSHOT</version> </dependency>

编写配置文件
server.port=8005

注册到eureka服务端的微服务名称

spring.application.name=study-trade

注册到eureka服务端的地址

eureka.client.service-url.defaultZone=http://localhost:9000/eureka/

security.login.username=root
security.login.pass=123456789
eureka.client.service-url.defaultZone=http://${security.login.username}:${security.login.pass}@localhost:9000/eureka/

点击具体的微服务,是否显示ip

eureka.instance.prefer-ip-address=true
eureka.instance.instance-id=study-trade-8005
写controller调用user服务
/**

  • @description:
  • @author: mmc
  • @create: 2020-04-05 11:41
    **/

@RestController
@RequestMapping("/trade")
public class TradeController {

@Autowired private UserApi userApi; @RequestMapping(value = "/testTrade/{userid}",method = RequestMethod.GET) public String testTrade(@PathVariable Integer userid){ User user= userApi.getUserById(userid); String name = user.getName(); System.out.println("用户"+name+"下单成功...."); return "用户"+name+"下单成功"; }

}

启动类配置启用feign注解
@SpringBootApplication
@EnableFeignClients(basePackages = "com.mmc.user")
public class TradeApplication {

public static void main(String[] args) { SpringApplication.run(TradeApplication.class); } 

}
测试
依次启动eureka Server,user工程,trade工程。输入网址测试

http://localhost:8005/trade/testTrade/1

github地址:https://github.com/mmcLine/spring-cloud-study

原文地址https://www.cnblogs.com/javammc/p/12638109.html

原文链接:https://yq.aliyun.com/articles/753511
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章