利用idea快速搭建一個spring-cloud(圖文)
package com.example.consumer; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.ComponentScan; import org.springframework.stereotype.Component; @SpringBootApplication //掃描所有包 @ComponentScan("com.test") //聲明為註冊服務 @EnableEurekaClient //把調用註冊子模塊接口引入到Spring容器中(不加此註解會出現找不到@FeignClient修飾的接口) @EnableFeignClients("com.test")//包路徑解決啟動類在別的包下問題 public class ConsumerApplication { public static void main(String[] args) { SpringApplication.run(ConsumerApplication.class, args); } }
1、創建一個空的maven項目!
2、創建一個註冊中心模塊
3、配置註冊中心
package com.example.eurekaserver; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication //聲明為註冊中心 @EnableEurekaServer public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
配置文件改用yml,配置如下:
server: #運行端口 port: 8888 eureka: instance: #註冊ip hostname: localhost client: #禁止自己當做服務註冊 register-with-eureka: false #屏蔽註冊信息 fetch-registry: false #註冊url serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
啟動成功後,訪問本地+端口即可看到註冊中心頁面,說明成功啦!
3、創建一個服務提供者(就是常寫的spring-boot)
服務提供者配置,如下:
package com.example.provider; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; @SpringBootApplication //聲明為註冊服務 @EnableEurekaClient public class ProviderApplication { public static void main(String[] args) { SpringApplication.run(ProviderApplication.class, args); } }
配置文件改用yml,配置如下:
eureka: client: serviceUrl: #服務註冊地址 defaultZone: http://localhost:8888/eureka/ server: #運行端口 port: 8001 spring: application: #服務註冊名稱 name: service-provider
按照寫springboot那樣寫一個查庫接口
package com.example.provider; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.context.annotation.ComponentScan; @SpringBootApplication //聲明為註冊服務 @EnableEurekaClient //掃描所有包 @ComponentScan("com.test") //掃描mapper @MapperScan("com.test.mapper") public class ProviderApplication { public static void main(String[] args) { SpringApplication.run(ProviderApplication.class, args); } }
yml配置
eureka: client: serviceUrl: #服務註冊地址 defaultZone: http://localhost:8888/eureka/ server: #運行端口 port: 8001 spring: application: #服務註冊名稱 name: service-provider #數據庫鏈接 datasource: username: root password: yh996112 url: jdbc:mysql://localhost:3306/yanghao?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC driver-class-name: com.mysql.cj.jdbc.Driver #mybatis配置 mybatis: mapper-locations: classpath:mapper/*Mapper.xml type-aliases-package: com.test.doman
OK,查庫然後接口返回數據成功!
咱們的服務也在註冊中心中註冊成功啦!
4、創建一個消費者服務
點擊完成創建該模塊
啟動器配置
package com.example.consumer; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.ComponentScan; import org.springframework.stereotype.Component; @SpringBootApplication //聲明為註冊服務 @EnableEurekaClient //把調用註冊子模塊接口引入到Spring容器中(不加此註解會出現找不到@FeignClient修飾的接口) @EnableFeignClients public class ConsumerApplication { public static void main(String[] args) { SpringApplication.run(ConsumerApplication.class, args); } }
配置文件改用yml,配置如下:
eureka: client: serviceUrl: #服務註冊地址 defaultZone: http://localhost:8888/eureka/ server: #運行端口 port: 8002 spring: application: #服務註冊名稱 name: service-consumer
將服務提供者模塊中的controller復制到消費者模塊,如果涉及doman中文件就一並復制過去。
package com.example.consumer.service; import com.example.consumer.doman.Test; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; /** * @Description:使用@FeignClient註解調用註冊子模塊接口方法 * @Author :y */ //註冊子模塊名稱 @FeignClient("service-provider") public interface TestService { //接口訪問地址 @GetMapping("index/index") public Test getTest(@RequestParam("id") Integer id); }
接口調用該service
啟動消費者,進行接口測試!
訪問消費者接口沒有問題,成功的調用瞭服務提供者的接口返回瞭數據!!!
以上就是idea快速部署springCloud的全部過程,其中發現瞭一個問題,在消費者模塊中啟動器貌似無法使用@ComponentScan註解掃描包,使用後啟動會報錯???具有原因沒有瞭解,建議不要把啟動類放在別的包。
2022-03-14:該問題解決!
問題描述:
在消費者模塊中,當啟動類在別的包下時,使用@ComponentScan掃描包來自動javaBean
但是因為service接口中的@FeignClient註解同樣不在啟動類的包下,所以僅用@ComponentScan掃描包而找不到@FeignClient同樣會報錯的。
所以在啟動類的@EnableFeignClients註解應該指定包去掃描一下!!!
消費者模塊配置如下:
到此這篇關於利用idea快速搭建一個spring-cloud(圖文)的文章就介紹到這瞭,更多相關idea搭建spring-cloud內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- SpringCloud服務註冊和發現組件Eureka
- Spring Cloud Eureka 註冊與發現操作步驟詳解
- Spring Cloud Eureka 搭建 & 集群方式
- SpringCloud2020版本配置與環境搭建教程詳解
- SpringCloud Eureka的使用教程