정상적인 상황에서는 현재 애플리케이션 서비스 (서비스 A라고 함)에 다른 애플리케이션 서비스 (서비스 B라고 함)에서 인터페이스를 참조하려는 위치가 있음을 나타 내기 위해 시작 클래스 에 @EnableFeignClients 주석을 추가합니다 . 서비스 B를 별도로 시작하고 레지스트리에 등록 할 수있는 경우 서비스 A의 시작 클래스에 @EnableFeignClients 주석 만 추가하면 됩니다. 서비스 B가 별도로 시작되지 않으면 Jar 형태로 서비스 A에 도입됩니다. 패키지, 서비스 A가 시작되면 적극적으로로드되지 않습니다 경우 서비스 B에 @FeignClient 주석 인터페이스를 자동으로 빈 객체를 생성 , 우리가 도입 그래서와의 다음과 같은 방법으로 B 형 서비스에서 서비스 A의 컨트롤러 클래스에서 사용 표시된 @FeignClient 주석 인터페이스 에
import com.bc.product.client.ProductClient;
@RestController
public class ClientController {
@Autowired
private ProductClient productClient;
...
}
이때 basePackages 속성 필드를 사용하여 애플리케이션 A가 애플리케이션 A가 시작될 때 서비스 B에서 @FeignClient 주석으로 표시된 인터페이스의 패키지 경로를 스캔해야 함을 지정해야합니다.
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients(basePackages = {"com.bc.product.client"})
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
}