ERROR INFO LIKE BELOW:
***************************
APPLICATION FAILED TO START
***************************
Description:
Field helloAgent in com.example.client.controller.Hello required a bean of
type 'com.example.common.agent.HelloAgent' that could not be found.
Action:
Consider defining a bean of type 'com.example.common.agent.HelloAgent' in
your configuration.
module: test-client as feignclient caller.
module: test-server as feignclient interface implementation.
module: test-common put all feignclient together.
package com.example.common.agent;
@FeignClient("hello")
public interface HelloAgent {
@GetMapping("/hello")
String hello(@RequestParam String msg);
}
package com.example.server.controller;
@RestController
public class Hello implements HelloAgent {
@Override
public String hello(@RequestParam String msg) {
System.out.println("get " + msg);
return "Hi " + msg;
}
}
package com.example.client.controller;
@RestController
public class Hello {
@Autowired
private HelloAgent helloAgent;
@GetMapping("/test")
public String test() {
System.out.println("go");
String ret = helloAgent.hello("client");
System.out.println("back " + ret);
return ret;
}
}
----------------------------
@EnableEurekaClient
@EnableFeignClients
@SpringBootApplication
@ComponentScan(basePackages = {"com.example.common.agent","com.example.client.controller"})
public class TestClientApplication {
public static void main(String[] args) {
SpringApplication.run(TestClientApplication.class, args);
}
}
Is there anyway to put all feignclient together so that we can manage them gracefully?
Or there is only way to use them redundancy?
THANKS!
Feign doesn't know about @ComponentScan
.
Use @EnableFeignClients(basePackages = {"com.example.common.agent","com.example.client.controller"})