Я только разбираюсь со спрингом, поэтому не совсем понимаю как работает. Итак я сделал все как в туториале firstapp и все работает.
Добавил свой контроллер и он почти работает.
@Controller
@RequestMapping("/transactionlist")
public class TransactionController {
@Autowired
private PostRepository repository;
@RequestMapping(value = "", method = RequestMethod.GET)
public String listTransactions(Model model){
Sample sample = new Sample();
sample.setRepository();
model.addAttribute("posts", repository.findAll());
return "posts/transactionlist";
}
}
NPE вылетает в следующем простом джава классе, который я сделал для работы с SQLite базой:
@Component
public class Sample
{
@Autowired
private PostRepository repository; // вот здесь
public void setRepository() {
System.out.println(repository);
repository.save(new Post( "testpost" ));
}
}
У меня вопрос - почему не срабатывает автопривязка? Можно ли её (автопривязку) использовать в простых джава классах? Т.е. удалить аннотацию компонент из моего класса Sample? в моем случае оно не работает ни так, ни так. context.xml у меня нет, т.е. все на аннотациях, как и в исходном проекте.
Аннотация @Autowired
работает только в бинах. Поэтому Sample
должен быть помечен аннотацией @Component
(или аналогичной) и должен создаваться не вручную оператором new
, а контейнером Spring.
@Controller
@RequestMapping("/transactionlist")
public class TransactionController {
@Autowired
private PostRepository repository;
@Autowired
private Sample sample;
@RequestMapping(value = "", method = RequestMethod.GET)
public String listTransactions(Model model){
sample.setRepository();
model.addAttribute("posts", repository.findAll());
return "posts/transactionlist";
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Доброго времени сутокПрошу объяснить, что я сделал не так и как это исправить
Необходимо создать приложение, окно которого двигалось бы по экрану
как из BufferedImage - перевести картинку в пиксели?
Собственно проблема следующаяЕсть активность которая сначала загружает первый фрагмент: