Autowired NullPointerException

375
14 мая 2017, 22:37

Я только разбираюсь со спрингом, поэтому не совсем понимаю как работает. Итак я сделал все как в туториале 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 у меня нет, т.е. все на аннотациях, как и в исходном проекте.

Answer 1

Аннотация @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";
    }
}
READ ALSO
MediaView налазит туда, куда не должна

MediaView налазит туда, куда не должна

Доброго времени сутокПрошу объяснить, что я сделал не так и как это исправить

204
произвольное движение окна java программы на netbeans

произвольное движение окна java программы на netbeans

Необходимо создать приложение, окно которого двигалось бы по экрану

209
Как из BufferedImage - перевести картинку в пиксели?

Как из BufferedImage - перевести картинку в пиксели?

как из BufferedImage - перевести картинку в пиксели?

216
Ошибка с RecyclerView: No adapter attached; skipping layout

Ошибка с RecyclerView: No adapter attached; skipping layout

Собственно проблема следующаяЕсть активность которая сначала загружает первый фрагмент:

311