@FeignClient(name = "SPRING-CLOUD-CLIENT-DEMO")是什么意思
时间: 2024-02-29 14:54:59 浏览: 45
这是一个使用Spring Cloud Feign进行声明式REST客户端的注解,其中name参数指定了要访问的服务名称。通过使用Feign,开发人员可以通过简单的接口定义来访问远程HTTP API,而无需考虑底层的实现细节。在这个注解中,指定的服务名称可以在Spring Cloud注册中心中进行查找,以便将请求路由到正确的服务实例。
相关问题
使用@FeignClient来一个demo
好的,下面是一个简单的使用@FeignClient的demo:
首先,需要在pom.xml中添加Feign的依赖:
```xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
```
然后,在启动类上添加@EnableFeignClients注解,开启Feign客户端:
```java
@SpringBootApplication
@EnableFeignClients
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
```
接着,创建一个Feign客户端接口,使用@FeignClient注解指定要调用的服务名称和URL:
```java
@FeignClient(name = "demo-service", url = "http://localhost:8080")
public interface DemoClient {
@GetMapping("/hello")
String sayHello();
}
```
最后,在需要调用服务的地方注入该接口,直接调用方法即可:
```java
@RestController
public class DemoController {
@Autowired
private DemoClient demoClient;
@GetMapping("/test")
public String test() {
String result = demoClient.sayHello();
return result;
}
}
```
以上就是一个简单的使用@FeignClient的demo。在实际使用中,还可以使用@PathVariable、@RequestParam等注解来传递参数。
spring cloud 规则引擎 demo
这里提供一个基于Spring Cloud和Drools规则引擎的简单demo,实现了根据用户输入的商品信息进行促销活动匹配的功能。
首先,需要在pom.xml文件中添加依赖:
```
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-schema</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-schema-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-schema-serde</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-kafka-streams</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-kafka-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-spring</artifactId>
<version>7.62.0.Final</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-core</artifactId>
<version>7.62.0.Final</version>
</dependency>
```
接着,在application.yml文件中配置RabbitMQ的连接信息:
```
spring:
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
```
然后,创建一个商品实体类Product:
```
public class Product {
private String name;
private int price;
private String category;
// getter和setter方法省略
}
```
接下来,创建一个规则引擎服务类RuleEngineService:
```
@Service
public class RuleEngineService {
private final KieContainer kieContainer;
public RuleEngineService(KieContainer kieContainer) {
this.kieContainer = kieContainer;
}
public List<String> getProductPromotions(Product product) {
List<String> promotions = new ArrayList<>();
KieSession kieSession = kieContainer.newKieSession();
kieSession.insert(product);
kieSession.setGlobal("promotions", promotions);
kieSession.fireAllRules();
kieSession.dispose();
return promotions;
}
}
```
在这个服务类中,我们通过注入KieContainer来获取Drools规则引擎的实例,然后根据用户传入的商品信息,通过Drools规则引擎来匹配对应的促销活动,最终返回一个促销活动列表。
最后,创建一个消息消费者类MessageConsumer:
```
@EnableBinding(Sink.class)
public class MessageConsumer {
private final RuleEngineService ruleEngineService;
public MessageConsumer(RuleEngineService ruleEngineService) {
this.ruleEngineService = ruleEngineService;
}
@StreamListener(target = Sink.INPUT)
public void process(Product product) {
List<String> promotions = ruleEngineService.getProductPromotions(product);
System.out.println("商品名称:" + product.getName());
System.out.println("促销活动列表:" + promotions);
}
}
```
这个消费者类通过@EnableBinding注解来绑定消息通道,然后使用@StreamListener注解监听输入通道,获取用户传入的商品信息,并通过RuleEngineService来获取促销活动列表并输出。
这样,一个简单的Spring Cloud和Drools规则引擎的demo就完成了。
相关推荐
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)