Spring Boot: как получить доступ к хранилищу в классе Java @Autowired не работает
Пожалуйста, объясните ваше решение с примером кода, поскольку я новичок в Spring Boot.
Репозиторий
import java.util.List;
import org.springframework.data.repository.CrudRepository;
public interface StoreRepository extends CrudRepository<Store, Integer> {
List<Store> findAll();
}
Магазин Entity
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Store {
@Id
private Integer sid;
private String sname;
public Store() {
}
public Store(Integer sid, String sname) {
super();
this.sid = sid;
this.sname = sname;
}
///GETTER and Setters here...
}
** Магазин Сервис **
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class StoreService {
@Autowired
private StoreRepository storeRepository;
public StoreService() {
}
public List<Stores> getAllStores(){
return (List<Stores>) storeRepository.findAll(); /* This works good. Through controller I can retrieve all data*/
}
}
Простой класс Java
@Component
public class StoreWorker {
@Autowired
private StoreRepository storeRepository;
public StoreWorker() {
System.out.println(storeRepository.findAll()); /* Error */
}
Ошибка:
Exception in thread "StoreWorker : restartedMain" java.lang.reflect.InvocationTargetException
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [io.store.workers.StoreWorker]: Constructor threw exception; nested exception is java.lang.NullPointerException
Caused by: java.lang.NullPointerException
Пожалуйста, объясните ваше решение с примером кода, поскольку я новичок в Spring Boot.