项目背景是这样的:
BaseRedisService 类(Redis api 封装类)
@Component
public class BaseRedisService {
@Autowired
private StringRedisTemplate stringRedisTemplate;
... ...
... ...
}
BaseController 类
@Component
public class BaseController {
@Autowired
protected BaseRedisService baseRedisService;
... ...
... ...
}
接口实现类
@RestController
public class TestServiceImpl extends BaseController implements TestApiService {
//测试 redis
@Override
public ResponseBase setTestRedis(String key, String value) {
baseRedisService.setString(key, value);
return setResultSuccess();
}
... ...
}
MemberServe启动类
@SpringBootApplication
@EnableEurekaServer
public class MemberServe {
public static void main(String[] args) {
SpringApplication.run(MemberServe.class, args);
}
}
在分布式微服务项目中,连接redis的封装类 BaseRedisService 总是出现以下问题
启动 MemberServe 服务后报以下错误:
***************************
APPLICATION FAILED TO START
***************************
Description:
Field baseRedisService in com.mykt.base.BaseController required a bean of type 'com.mykt.base.BaseRedisService' that could not be found.
Action:
Consider defining a bean of type 'com.mykt.base.BaseRedisService' in your configuration.
小女子我找了一个下午的问题
最后终于找出来了
修改方法如下:
MemberServe启动类
@SpringBootApplication
@EnableEurekaServer
@ComponentScan("com.mykt")
public class MemberServe {
public static void main(String[] args) {
SpringApplication.run(MemberServe.class, args);
}
}
没错,只需要在 MemberServe启动类 中加上 @ComponentScan("com.mykt") 注解!!!