Невозможно внедрить зависимости внутри лямбда-функции AWS через среду Springs. - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь создать опросник SQS внутри AWS Lambda и пытаюсь обработать сообщения, извлеченные из очереди SQS. В этом коде я использую Spring Framework для внедрения зависимостей, поэтому сейчас я не использую Guice или Dagger и не создаю объекты с помощью оператора «new».

Но когда я объявляю все bean-компоненты в ApplicationBeans. java файла внутри папки Spring, ни один из моих bean-компонентов не инициализируется.

My ApplicationBeans. java выглядит так:

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Bean;

@Configuration
public class ApplicationBeans
{

@Bean
-----------
-----------
----------
}

И мой основной класс, в который мне нужно добавить зависимости выглядят так:

import lombok.AllArgsConstructor;
@AllArgsConstructor
public class MainClass implements RequestHandler<SQSEvent, Void>
{
private Dependency1 dependency1;
-----
-----
-----

}

Но теперь, когда я пытаюсь получить доступ к зависимости в коде, возникает исключение nullPointer. Что не так при настройке пружин в AWS Lambda?

1 Ответ

1 голос
/ 18 февраля 2020

В вашем коде вы должны указать аннотации, такие как

@ Autowired

или

@ Resource

, чтобы Spring понимала, что ему нужно внедрить bean-компонент.

import lombok.AllArgsConstructor;
@AllArgsConstructor
public class MainClass implements RequestHandler<SQSEvent, Void>
{
    @Autowired
    private Dependency1 dependency1;
    -----
    -----
    -----
}

Если вы не хотите использовать аннотации, вам нужно использовать класс ApplicationContext для получения Beans с использованием метода getBean () .

Надеюсь, это поможет !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...