2012-01-27 2 views
0

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

@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); 
} 
} 

эта строка

Итерируемый списокTopic = service.findAllTopics();

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

ответ

1

Вы должны autowire TopicService в HomeController:

@Controller 
public class HomeController { 

    @Aurowired 
    private TopicService service; 
+0

Спасибо, очень – Eugene

Смежные вопросы