Lambda注入服务+ dao

时间:2018-05-25 13:25:37

标签: java spring spring-boot dependency-injection aws-lambda

我有部署的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; } 我不能这样做。

1 个答案:

答案 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
}