利用idea快速搭建一個(gè)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")
//聲明為注冊(cè)服務(wù)
@EnableEurekaClient
//把調(diào)用注冊(cè)子模塊接口引入到Spring容器中(不加此注解會(huì)出現(xiàn)找不到@FeignClient修飾的接口)
@EnableFeignClients("com.test")//包路徑解決啟動(dòng)類(lèi)在別的包下問(wèn)題
public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
}1、創(chuàng)建一個(gè)空的maven項(xiàng)目!




2、創(chuàng)建一個(gè)注冊(cè)中心模塊





3、配置注冊(cè)中心

package com.example.eurekaserver;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
//聲明為注冊(cè)中心
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}配置文件改用yml,配置如下:
server:
#運(yùn)行端口
port: 8888
eureka:
instance:
#注冊(cè)ip
hostname: localhost
client:
#禁止自己當(dāng)做服務(wù)注冊(cè)
register-with-eureka: false
#屏蔽注冊(cè)信息
fetch-registry: false
#注冊(cè)u(píng)rl
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
啟動(dòng)成功后,訪問(wèn)本地+端口即可看到注冊(cè)中心頁(yè)面,說(shuō)明成功啦!

3、創(chuàng)建一個(gè)服務(wù)提供者(就是常寫(xiě)的spring-boot)



服務(wù)提供者配置,如下:

package com.example.provider;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@SpringBootApplication
//聲明為注冊(cè)服務(wù)
@EnableEurekaClient
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
}配置文件改用yml,配置如下:
eureka:
client:
serviceUrl:
#服務(wù)注冊(cè)地址
defaultZone: http://localhost:8888/eureka/
server:
#運(yùn)行端口
port: 8001
spring:
application:
#服務(wù)注冊(cè)名稱(chēng)
name: service-provider按照寫(xiě)springboot那樣寫(xiě)一個(gè)查庫(kù)接口

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
//聲明為注冊(cè)服務(wù)
@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:
#服務(wù)注冊(cè)地址
defaultZone: http://localhost:8888/eureka/
server:
#運(yùn)行端口
port: 8001
spring:
application:
#服務(wù)注冊(cè)名稱(chēng)
name: service-provider
#數(shù)據(jù)庫(kù)鏈接
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,查庫(kù)然后接口返回?cái)?shù)據(jù)成功!
咱們的服務(wù)也在注冊(cè)中心中注冊(cè)成功啦!

4、創(chuàng)建一個(gè)消費(fèi)者服務(wù)


點(diǎn)擊完成創(chuàng)建該模塊
啟動(dòng)器配置

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
//聲明為注冊(cè)服務(wù)
@EnableEurekaClient
//把調(diào)用注冊(cè)子模塊接口引入到Spring容器中(不加此注解會(huì)出現(xiàn)找不到@FeignClient修飾的接口)
@EnableFeignClients
public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
}配置文件改用yml,配置如下:
eureka:
client:
serviceUrl:
#服務(wù)注冊(cè)地址
defaultZone: http://localhost:8888/eureka/
server:
#運(yùn)行端口
port: 8002
spring:
application:
#服務(wù)注冊(cè)名稱(chēng)
name: service-consumer
將服務(wù)提供者模塊中的controller復(fù)制到消費(fèi)者模塊,如果涉及doman中文件就一并復(fù)制過(guò)去。


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注解調(diào)用注冊(cè)子模塊接口方法
* @Author :y
*/
//注冊(cè)子模塊名稱(chēng)
@FeignClient("service-provider")
public interface TestService {
//接口訪問(wèn)地址
@GetMapping("index/index")
public Test getTest(@RequestParam("id") Integer id);
}接口調(diào)用該service

啟動(dòng)消費(fèi)者,進(jìn)行接口測(cè)試!

訪問(wèn)消費(fèi)者接口沒(méi)有問(wèn)題,成功的調(diào)用了服務(wù)提供者的接口返回了數(shù)據(jù)?。?!
以上就是idea快速部署springCloud的全部過(guò)程,其中發(fā)現(xiàn)了一個(gè)問(wèn)題,在消費(fèi)者模塊中啟動(dòng)器貌似無(wú)法使用@ComponentScan注解掃描包,使用后啟動(dòng)會(huì)報(bào)錯(cuò)???具有原因沒(méi)有了解,建議不要把啟動(dòng)類(lèi)放在別的包。
2022-03-14:該問(wèn)題解決!
問(wèn)題描述:

在消費(fèi)者模塊中,當(dāng)啟動(dòng)類(lèi)在別的包下時(shí),使用@ComponentScan掃描包來(lái)自動(dòng)javaBean
但是因?yàn)閟ervice接口中的@FeignClient注解同樣不在啟動(dòng)類(lèi)的包下,所以?xún)H用@ComponentScan掃描包而找不到@FeignClient同樣會(huì)報(bào)錯(cuò)的。
所以在啟動(dòng)類(lèi)的@EnableFeignClients注解應(yīng)該指定包去掃描一下?。?!
消費(fèi)者模塊配置如下:

到此這篇關(guān)于利用idea快速搭建一個(gè)spring-cloud(圖文)的文章就介紹到這了,更多相關(guān)idea搭建spring-cloud內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解讀nextLine().split(“[\\s]“)的意思
這篇文章主要介紹了解讀nextLine().split(“[\\s]“)的意思,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
SpringBoot配置logback.xml 多環(huán)境的操作步驟
最近在研究springboot的日志,所以記錄一下,做一下總結(jié),今天重點(diǎn)給大家介紹SpringBoot配置logback.xml 多環(huán)境的操作步驟,要實(shí)現(xiàn)多環(huán)境的配置,主要是依賴(lài)于springboot的application.yml文件去實(shí)現(xiàn),感興趣的朋友跟隨小編一起看看吧2021-05-05
使用java寫(xiě)的矩陣乘法實(shí)例(Strassen算法)
這篇文章主要給大家介紹了關(guān)于如何使用java寫(xiě)的矩陣乘法(Strassen算法)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
java EasyExcel面向Excel文檔讀寫(xiě)邏輯示例詳解
這篇文章主要為大家介紹了java EasyExcel面向Excel文檔讀寫(xiě)邏輯示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
spring data jpa @Query注解中delete語(yǔ)句報(bào)錯(cuò)的解決
這篇文章主要介紹了spring data jpa @Query注解中delete語(yǔ)句報(bào)錯(cuò)的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
Java 多線程并發(fā)編程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Java 多線程并發(fā)編程的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-05-05
Spring JDK動(dòng)態(tài)代理實(shí)現(xiàn)過(guò)程詳解
這篇文章主要介紹了Spring JDK動(dòng)態(tài)代理實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02

