我有部署的Amazon Lambda(springboot)并且工作正常。
我以这种方式从外部项目(依赖项添加到pom)注入服务:
spec
我必须这样做,因为当上传到亚马逊时,@ Autowired不起作用。
现在,从另一个springboot项目(而不是lambda),我有这个使用DAO的服务。
服务
@Bean
public SomeExternalService someExternalService() {
return new SomeExternalService;
}
存储库
@Service
public class StateService {
@Autowired
private StateRepository repository;
/**
* Find all {@code State}
*/
public void findSomething(String thing) {
return repository.findSomething("thing");
}
.....
建造时我得到了
创建名为“StateService”的bean时出错:不满意的依赖项 通过字段'repository'表达
和
org.springframework.beans.factory.NoSuchBeanDefinitionException:没有 'mypackage.repository.StateRepository'类型的限定bean 可用:预计至少有1个符合autowire资格的bean 候选者。
我完全像其他人一样注入该服务
@EnableScan
public interface StateRepository extends PagingAndSortingRepository<State, String> {
List<State> findSomething(String thing);
@Bean
public StateService stateService() {
return new StateService;
}
我不能这样做。
答案 0 :(得分:0)
StateRepository类必须具有@Component注释,或者将其作为@Bean添加到@Configuration类中。
@Configuration
@ComponentScan("com.company")
public class ConfigClass {
// your @Bean's
@Bean
public StateRepository stateRepository() {
return new StateRepository();
}
// now can @Autowired
}