Как инициализировать веб-сервис - PullRequest
0 голосов
/ 27 января 2012

Я пытаюсь создать простую веб-страницу, на которой отображаются данные, полученные с веб-сервиса

@Service
@Transactional
public class TopicService {
    @Autowired
    private TopicRepository topicRepository;

    public int saveTopic(Topic topic){
        return topicRepository.save(topic).getId();

        }

    public Iterable<Topic> findAllTopics(){
        return topicRepository.findAll();

    }

    public Topic findTopicByID(Long id){
        return topicRepository.findOne(id);
    }

    public List<Topic> findTopicsByTag(Tag tag){
        return topicRepository.findAllByTopicTag(tag);
    }

}

репозиторий тем расширяет CRUD-репозиторий

@Repository
public interface TopicRepository extends CrudRepository<Topic, Long>
{
    List<Topic> findAllByTopicTag(Tag currentTag);

} 

контроллер вызывает сервис следующим образом

@Controller
public class HomeController {

    private TopicService service;

    private static final Logger logger = LoggerFactory.getLogger(HomeController.class);

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public ModelAndView home(Locale locale, Model model) 
    {
         Iterable<Topic> listTopic = service.findAllTopics();
         return new ModelAndView("home", "model", listTopic);
}
}

эта строка

Итерируемый listTopic = service.findAllTopics ();

выдает исключение нулевого указателя. Я думаю, потому что служба не инициализирована. Как я могу выполнить правильную инициализацию сервиса?

1 Ответ

1 голос
/ 27 января 2012

Вам нужно автоматически подключить TopicService в HomeController:

@Controller
public class HomeController {

    @Aurowired
    private TopicService service;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...