如何初始化Web服务

时间:2012-01-27 12:09:19

标签: java spring spring-mvc

我正在尝试创建一个简单的网页,显示从网络服务收到的数据

@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

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

此字符串

  

Iterable listTopic = service.findAllTopics();

抛出空指针异常。我想,因为服务没有初始化。我怎样才能正确初始化服务呢?

1 个答案:

答案 0 :(得分:1)

您需要在TopicService中自动装配HomeController

@Controller
public class HomeController {

    @Aurowired
    private TopicService service;