Есть класс моего потока:
@Component
public class MailThread extends Thread {
@Autowired
private MessageRepo messageRepo;
public MailThread() {}
@Override
public void run() {
while (true) {
try {
Iterable<Message> messages;
messages = messageRepo.findByTime("18:50");
for(Message message : messages){
System.out.println(message.toString());
}
System.out.println("minute");
Thread.sleep(60000);
} catch (InterruptedException ex) {
System.out.println(ex.getMessage());
}
}
}
}
MessageRepo:
public interface MessageRepo extends JpaRepository<Message, Long> {
List<Message> findByTime(String time);
}
Я вызываю свой поток из Main:
@SpringBootApplication
public class Application {
public static void main(String[] args){
SpringApplication.run(Application.class, args);
new MailThread().run();
}
}
Но получаю такую ошибку:
Exception in thread "restartedMain" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
Caused by: java.lang.NullPointerException
at project.components.MailThread.run(MailThread.java:39)
at project.Application.main(Application.java:12)
... 5 mor
Как раз там, где пытаюсь найти все сообщения из базы данных(messages = messageRepo.findByTime("18:50")) При вызове из обычного контроллера все работает. Подскажите пожалуйста, в чем проблема?
Аннотация @Autowire
работает только в тех объектах, которых созданы контейнером Spring, а не оператором new
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Использую SearchView и стандартный адаптер ArrayAdapter, с помощью adaptergetFilter()
У меня есть две программы на javaПервая авторизуется продавцом и создаёт в магазине товар
Я могу создать жар файл который будет создавать пдфМоя программа должна работать:
Допустим, есть некоторая кнопка и при нажатии на нее нужно создать свайп вправоКак реализовать подобное и возможно ли это?