Я разрабатываю приложение с загрузкой Spring, я использую модель MVC.У меня есть объект с именем A, который имеет свой контроллер, сервис и хранилище.все в порядке здесь.
У меня есть служебный класс, который работает и вызывается при запуске сервера.Этот служебный класс создает набор объектов A, а затем сохраняет его в базе данных.Проблема в том, что служба autowired
класса является нулевой, потому что я создал новый экземпляр класса утилиты для его запуска, поэтому Spring неправильно создает службу автоматической проводки.
, чтоis:
Main.java
@SpringBootApplication
public class MainClass {
public static void main(String[] args) {
...
Runnable task = new Utility();
...
}
}
Utility.java
@Autowired
private Service service;
...
public void run() {
...
service.save(entities); <-- NPE
}
Я знаю, что Spring не может подключаться автоматическислужба этого нового экземпляра, но мне нужно создать экземпляр утилиты, чтобы запустить его.
Я попытался получить доступ к службе через контекст приложения, но проблема та же:
@Autowired
private ApplicationContext applicationContext;
Я попытался сделать работоспособным контроллер (если служба правильно подключена автоматически), но проблема та же, так как мне нужно сделать new controller();
.
. Я прочитал эти сообщения. post 1 post 2 , но любое решение работает.
UPDATE: мне нужно, чтобы задача запускалась в новом потоке, так как она будет выполняться каждые X часов.Задача загружает набор данных из Интернета и сохраняет его в базе данных.